繁体   English   中英

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

[英]mysql_connect returning “Can't connect to local MySQL server through socket” on remote host connection?

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

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

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

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

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

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

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

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

克。

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

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

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

看看这个

一会儿有类似的事情。

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

我想我打开了IP连接限制的东西到一个字符串,它是我所在地区的IP地址,解决了这个问题。

如果您正在运行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目录中删除旧文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM