我有一台服务器返回了一个意外的,间歇性的错误,并想知道是否有人曾经经历过或者可能猜到可能会发生什么。到目前为止,我的搜索一直没有用。
我以通常的方式使用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?我不知道这样做,而且说文档中没有任何内容。
对于失败的连接,各种文件似乎没有任何模式,它发生在各种时间。我认为它可能与网络流量有关,因为如果你立即刷新页面它连接正常,但我很困惑为什么我无法连接到套接字错误。
数据库提供程序已检查并且无法找到服务器本身的问题。 有人有什么想法吗?
答案 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目录中删除旧文件。