基本上我有一个应用程序需要做一个远程 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 反向代理转发端口以绕过任何防火墙,我没有成功,但我可以想象这只是我正在执行的实际命令中的一个错误。
最佳答案
“脚本在本地专用机器上”,而不是您的本地机器。您的 MySQL 无法从您的本地网络访问,可能是因为本地防火墙(在您的物理笔记本电脑上)或因为您的虚拟机是 NAT 的。
关于php - 远程 mysql 不会通过 php/mysqli 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17530983/