MySQL:10061错误,但只能通过PHP

时间:2013-12-16 10:42:35

标签: php mysql

我发现自己无法使用PHP连接到局域网上的MySQL服务器,只能使用PHP。这是情况的细分。

  • 我的服务器位于192.168.0.999(当然,除了999在0-255范围内)。这是一个Ubuntu服务器,我运行MySQL 5.5,我通过apt-get安装。
  • 我在Windows 7上使用PHP 4(不,不幸的是我现在无法切换到5)
  • 我使用mysql_connect()进行连接(同样,此时不再切换到其他API)。 mysql_error()说:Can't connect to MySQL server on '192.168.0.999' (10061)
  • 我可以telnet到192.168.0.999端口3306,虽然PuTTY给我一个关于数据包顺序的错误,但很明显有一个MySQL服务器正在侦听该端口。
  • 我可以通过启动cmd并输入mysql -h192.168.0.999 -uusername -p来连接,(当然我的用户名实际上不是'用户名'),输入密码后我可以运行查询。

我已经在PHP脚本中对拼写错误进行了三次检查,因此我现在已经完全陷入困境了。我知道错误10061是一个网络错误,无论是MySQL还是它运行的盒子,都拒绝我的连接,但是我不能将这与我可以telnet到同一主机的事实相协调,并且可以轻松地与标准连接我机器上的mysql客户端。

在任何人提出之前,AFAICT我已经按照MySQL手册中的故障排除步骤进行了操作,而PHP手册似乎没什么用处。将数据库复制到我的本地计算机是非常合乎逻辑的,非常理想,但也非常不切实际。

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

你已经声明你在Windows上运行它,并且你可以通过命令行而不是PHP访问MySQL。

这听起来像权限问题 - 你的表是InnoDB吗?

如果是,请检查InnoDB数据库文件的权限。

答案 1 :(得分:0)

事实证明,我正在连接到正确的主机,但是连接到错误的端口。由于与问题不相关的原因,我的MySQL实例在端口3307而不是3306上运行,因此我在mysql.default_port文件中将php.ini设置为3307。

神秘解决了:PEBKAC!