0

我在托管服务器上有一个项目。他们非常不可靠,所以我决定搬到另一个主机。在此期间,我想将 php 文件保留在现有服务器上,并将它们指向我的 rackspace 服务器上的另一个 MySQL 数据库。我已将机架空间服务器上的 mysql 配置为接受远程连接。我可以通过家里的 ubuntu 终端成功连接到它。但是,每次托管服务器上的 php 文件尝试连接到它时,我都会收到以下错误:

这是php中的代码......

mysql_pconnect("1.2.3.4","user","password")
or die("Unable to connect to SQL server".mysql_error());

这是错误/输出

无法连接到 SQL 服务器在查询期间丢失与 MySQL 服务器的连接

任何想法为什么我可以通过终端连接但不能通过 php 连接?

谢谢

4

2 回答 2

0

如果连接立即被拒绝,那么您的旧或新托管服务提供商正在阻止连接,或者您用于连接的用户帐户上的主机掩码有问题。如果您无法访问旧主机上的命令行 mysql 客户端,您可以尝试 fsockopen() 尝试直接连接以查看连接是否被拒绝,以尝试确定是哪种情况。如果它在超时后被阻止,则几乎可以肯定它是一端或两端的防火墙策略。

但是,我能不能这么说:

a)不推荐使用 mysql_ 函数,因此您可能还应该考虑升级到 mysqli 或 pdo 或其他东西。

b) 除非您告诉您用于连接 SSL 的任何 api 或其他一些安全方法(在 mysql_ 情况下,它是 MYSQL_CLIENT_SSL 标志)您的数据(可能还有您的密码或可能让攻击者像您一样连接的一些变体)将通过未加密的开放互联网...当然,这需要 SSL 证书或容易受到中间人攻击,所以...是的。

于 2013-09-18T00:26:10.697 回答
0

检查您的wait_timeout。在您移动时将其设置为较高的数字。

于 2013-09-17T21:29:36.423 回答