【发布时间】:2013-07-08 15:55:57
【问题描述】:
基本上我有一个应用程序需要进行远程 mysql 连接来获取数据。我有一个本地测试 mysql 服务器在 192.168.1.100 之类的 ip 上运行,默认端口,heidiSQL 连接绝对没有问题。但是,当我尝试对 php 执行相同操作时,加载需要很长时间,然后出现以下错误。
Connect Error (2003) Can't connect to MySQL server on '192.168.1.100' (110)
我已经三次检查了我的配置,发现我在 HeidiSQL 和 php 中使用的登录详细信息之间没有差异,所以这个错误让我很受挫。我是否必须设置某种 php.ini 配置值才能允许远程连接?谷歌在这方面没有太大帮助......
Heidi 在我的笔记本电脑上,mysql 服务器在虚拟 linux 服务器上,运行脚本的服务器在本地专用机器上。它们都在同一个网络中。现在我想你可能有一些东西,有一个调制解调器路由器连接到开发服务器,它下面的一个路由器充当无线交换机。所以路由器上的防火墙可能是原因。
虚拟机正在使用桥接适配器。
更新: 我们采取了简单的方法,因为这需要更多的时间,所以我们创建了一个实时服务器来运行 mysql 服务器,而不是在本地运行。
为了帮助有类似问题的任何人,我还尝试通过 ssh 反向代理转发端口以绕过任何防火墙,但我没有成功,但我可以想象这只是我正在执行的实际命令中的一个错误。
【问题讨论】:
-
长时间的停顿表明有东西阻塞了连接。防火墙?安全系统?
-
在那种情况下,我会觉得海蒂应该有同样的问题,但它会立即加载。
-
那么 PHP 代码和 Heidi 在同一台机器上运行?请记住,MySQL 上的用户帐户不仅是用户名/密码,而且还基于源 IP。
-
您还应该检查您的虚拟机是否可以从网络访问,例如。它没有设置为 NAT 或仅主机连接。
-
请将所有其他信息添加到您的问题正文中,这样我们就不需要通过 cmets 来了解完整情况。