簡體   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