【问题标题】:remote mysql will not connect via php/mysqli远程 mysql 将无法通过 php/mysqli 连接
【发布时间】: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 来了解完整情况。

标签: php mysql database mysqli


【解决方案1】:

“脚本在本地专用机器上”,而不是您的本地机器。您的 MySQL 无法从您的本地网络访问,可能是因为本地防火墙(在您的物理笔记本电脑上)或因为您的虚拟机经过了 NAT。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2010-12-24
    • 2015-03-19
    • 2019-10-17
    • 2018-12-30
    • 2010-12-24
    • 2018-12-05
    相关资源
    最近更新 更多