2011-03-22 160 views
0

我正在本地开发并连接到远程mysql服务器。我一直在我的本地机器上使用IIS(WinXP),但现在我正在使用Apache。迁移到Apache后,我的大部分PHP网站都正常工作。apache/php/mysqli连接到远程数据库失败,但IIS和MySQL工作台连接

但是 - 当库MySQLi试图连接到远程数据库,我得到:
(HY000/2003):无法连接到MySQL服务器上的“* *”(10060)

我知道,服务器接受来自我的IP连接,因为我能够使用MySQL工作台我的本地机器连接到同一台服务器。

我也知道我使用mysqli的db连接细节是正确的,因为我在没有问题的情况下在IIS上运行时使用了相同的细节,唯一发生的变化是我从IIS移动到Apache。

当我的本地防火墙被禁用时,此问题仍然存在。

我对Apache很少有经验,有没有配置设置,我错过了,这使我无法连接到远程数据库,或者是篡改/隐藏我的正确IP的报告?

感谢您的帮助,我在抓着救命稻草这里...

+0

如果您单独安装Apache,则可能没有正确安装MySQL模块。安装WAMP或XAMP,它会为你做Apache,PHP,MySQL! :) – blanknamefornow 2011-03-22 21:52:35

+0

您可以显示您使用mysqli连接到MySQL的PHP​​代码吗? – 2011-03-22 21:52:41

+0

'$ mysqli_connection = new mysqli($ db_host,$ db_user,$ db_pwd,$ _db);'是我使用的代码。 – Mork 2011-03-22 22:31:23

回答

0

错误10060发生在远程MySQL服务器没有响应。

可能是连接到远程机器上的端口3306被阻止。这可能是托管PHP/Apache的系统具有阻止传出连接的软件防火墙,或者PHP/Apache不允许通过该防火墙打开网络连接。

+0

感谢您的答案 - 不同的端口正在使用,但我可以确认它没有被MySQL服务器阻止,因为我可以通过MySQL Workbench使用相同的细节和相同的机器进行连接。我也尝试过禁用本地防火墙进行测试 - 没有喜悦。 – Mork 2011-03-22 22:36:06

+0

您是否能够在托管Apache的计算机的命令行上使用PHP进行连接? – Charles 2011-03-22 22:39:54

+0

我从未从命令行使用过PHP。我该如何解决这个问题,是否需要创建一个.php文件并执行它? – Mork 2011-03-22 22:50:38