有没有好用的通用PHP MySQL HTTP隧道?

12
许多Windows MySQL工具(如Navicat或EMS)都具有此功能-您只需在共享主机上放置一个PHP文件,即可通过该php文件公开的Web服务将本地运行的程序连接到远程MySQL服务器。

是否有任何良好的流行免费解决方案,可使用PHP将完整的MySQL公开为Web服务?


请澄清一下,您是指基于Web的数据库管理系统吗? - Christian Mann
是的,也许我们可以这么说。但我既不需要任何特殊简化的HTTP DBMS,也不需要本地存储。我需要一个功能齐全的事务关系型DBMS(如MySQL InnoDB、PostgreSQL或MS SQL Server),通过PHP或Ruby公开,并通过HTTP从客户端访问Web。 - Ivan
4个回答

6

很遗憾,文件SQLYogTunnel.php使用了已弃用的mysql_*函数,在PHP 7.0及以上版本中无法正常工作。 - user7342807
仅适用于付费版本。 - Mud

5
如果您可以访问SSH,则可以在MySQL Workbench和SQLyog中使用TCP/IP通过SSH进行连接,而无需使用PHP隧道脚本。但是,如果由于服务器配置原因造成无法连接,则需要通过SSH隧道来解决此限制(当然,前提是您有主机的SSH访问权限),并且这种方法是加密的。请注意,原始帖子要求使用HTTP隧道。
要在SQLyog中设置SSH隧道,请在连接的MySQL选项卡上按照通常的方式输入您的MySQL凭据,就像在主机上使用本地用户一样(用安全且明智的内容替换“root”和密码):
然后,在SSH选项卡下,输入您的终端登录详细信息(用户名、密码和端口号(如果不是22)):
然后保存您的连接。在MySQL Workbench中,该过程类似,应该很容易找到相关设置。

2
它对当前被接受的答案有什么补充? - Yaroslav
1
被接受的答案是使用通过SQLyogTunnel.php脚本的HTTP隧道。我曾经在共享主机上有客户网站,由于服务器配置超出了我的控制范围,因此这种方法不起作用。我建议使用SSH隧道,它具有加密的附加优势(当然,这只适用于您拥有主机的SSH访问权限),尽管原始帖子要求使用HTTP隧道。 - frijj2k
好的评论,将其添加到您的答案中。 - Yaroslav

2
尝试使用HTTPtunnel GNU。这里有一个示例:连接MySQL使用HTTPtunnel GNU。 点击此处

1
谢谢,但好的软件是来自 http://http-tunnel.sourceforge.net 的 HTTPTunnel,而不是来自 http://www.nocrew.org/software/httptunnel.html 的 GNU HTTPTunnel。 - diyism
@diyism,你成功让它工作了吗? - Vic Seedoubleyew
这个示例链接已经失效了。有人知道如何在现代版本的PHP中使用这个工具的示例吗?谢谢。 - abu

1
我已经在sourceforge上建立了一个名为MySQLTunnel的PHP脚本,您可以下载并尝试使用。它支持以下功能:
  • 将HTTP隧道连接到MySQL
  • JSON结果集
  • 按需压缩以节省带宽
  • 按需加密使用AES-128或AES-256以保护数据和密码的安全性
  • 支持http://和https://
  • 用PHP编写,可安装在任何LAMP或WAMP堆栈上
  • 快速且安全的通信

这里您可以找到它

希望对您有所帮助


谢谢分享!只是为了确保我理解:由于它返回json,所以不能直接通过将其url指向数据库连接器来使用,对吗?需要编写特定的代码来发送请求和解析响应,对吗? - Vic Seedoubleyew
是的,你说得对。在客户端,你需要发送http(s)请求并获取JSON结果集,然后需要解析它们。但这在任何语言中都是一个简单的例程。我自己在PHP、Delphi和Java(Android)应用程序中使用过这个隧道。 - Athanasios Alekizoglou
非常感谢您的迅速回复!我同意这很容易实现。但我认为缺点在于它会在使用代码和实现之间创建紧密耦合。如果以后更改数据库,不再需要隧道,则必须重写用户代码,而不仅仅是更改数据库主机和端口。 - Vic Seedoubleyew
2
这不是一个隧道。隧道/代理的重点在于,您可以使用自己选择的SQL客户端,就像直接连接到主机一样。 - Mud

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接