mysql_connect在远程主机连接上返回“无法通过套接字连接到本地MySQL服务器”?

时间:2011-06-23 09:53:40

标签: php mysql

我有一台服务器返回了一个意外的,间歇性的错误,并想知道是否有人曾经经历过或者可能猜到可能会发生什么。到目前为止,我的搜索一直没有用。

我以通常的方式使用mysql_connect()连接到远程mysql服务器,但是在最近2周(每天几次),与数据库的连接失败,我无法连接到套接字错误?< / p>

Error: 2002 - Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

显然,这是意外的,因为我试图连接到远程主机。如果远程主机不可用,mysql_connect是否默认为localhost?我不知道这样做,而且说文档中没有任何内容。

对于失败的连接,各种文件似乎没有任何模式,它发生在各种时间。我认为它可能与网络流量有关,因为如果你立即刷新页面它连接正常,但我很困惑为什么我无法连接到套接字错误。

数据库提供程序已检查并且无法找到服务器本身的问题。 有人有什么想法吗?

5 个答案:

答案 0 :(得分:3)

我确定它不默认为localhost,我也非常确定它是远程服务器向您发送错误消息。所以它是你的mysql服务器上的“Local”,而不是“你的”服务器上的本地。

在这种情况下,可能是由于远程服务器的停机时间。

的Gr。

答案 1 :(得分:3)

好的, facepalm 时刻......在这次打击我多年之后我终于找到了为什么mysql_error()报告了套接字错误。在我的代码中有一个我没注意到的mysql_select_db()就是那个,那就是报告套接字错误,因为它没有打开连接供它使用。

mysql_connect报告的实际错误是(2003)无法连接到'mysql.hostname.tld'上的MySQL服务器。我仍然倾向于某种DNS查找/网络流量问题,我目前正在使用IP地址进行连接以查看是否存在错误。

但就这个问题而言,答案是“我是个笨蛋”。

答案 2 :(得分:2)

查看this

答案 3 :(得分:2)

不久前有类似的事情。

你在家连接吗?我问的原因是我的ISP喜欢把IP地址重新分配到我的家庭帐户,并且我的远程MySQL上有IP授权。

我认为我为一个字符串打开了IP连接限制,该字符串是我所在地区的IP地址,解决了这个问题。

答案 4 :(得分:0)

如果您正在运行Windows,则可能已有太多连接,如果是,请转到http://dev.mysql.com/doc/refman/5.5/en/can-not-connect-to-server.html#can-not-connect-to-server-on-windows并阅读。

否则,也许有人可能已经删除了mysqld使用的Unix套接字文件(默认情况下为/tmp/mysql.sock)。例如,您可能有一个cron作业从/ tmp目录中删除旧文件。