簡體   English   中英

從PHP連接到我的localhost MySQL實例的間歇性錯誤:mysqli_connect():HY000 / 2013

[英]Intermittent error connecting to my localhost MySQL instance from PHP: mysqli_connect(): HY000/2013

我有一個LAMP網站(PHP / MySQL),我非常依賴我的MySQL數據庫。

最近,間歇性地發生以下錯誤:

[30-Oct-2011 16:11:49] PHP Warning:  mysqli_connect() [<a href='function.mysqli-connect'>function.mysqli-connect</a>]: (HY000/2013): Lost connection to MySQL server at 'sending authentication information', system error: 32 in /home/path/to/my/code.php on line 1029

這是第1029行,偶爾會給出上述錯誤的具體行:

$db = mysqli_connect($cfg['db_location'], $cfg['db_reader_username'], $cfg['db_reader_password']);

其中$cfg['db_location']"localhost" ,用戶名和密碼是正確的。

似乎某些東西導致我的PHP腳本間歇性地失去與MySQL服務器的連接,這讓我感到困惑,因為我的所有 MySQL連接都是針對localhost的。 也就是說,PHP腳本和MySQL服務器都在同一個盒子上運行,我通過localhost連接到MySQL。

此外,這是令人費解的,因為我的PHP腳本能夠成功連接到MySQL服務器,可能有90%的頁面。

我可以說,我的服務器有足夠的RAM和CPU:

top - 16:38:23 up 173 days, 19:19,  2 users,  load average: 0.57, 0.78, 0.84
Tasks: 142 total,   4 running, 137 sleeping,   0 stopped,   1 zombie
Cpu(s): 18.7%us, 27.5%sy,  0.7%ni, 52.6%id,  0.2%wa,  0.1%hi,  0.2%si,  0.0%st
Mem:   2976260k total,  1861368k used,  1114892k free,   532628k buffers
Swap:  2048248k total,      116k used,  2048132k free,  1035804k cached

並且有足夠的可用磁盤空間。 當我運行df -h ,我的所有文件系統最多使用25%。

所以我不知道什么會導致我在PHP錯誤日志中看到的零星錯誤。

有什么想法可能導致我的PHP腳本間歇性地失去與localhost上的MySQL服務器的連接?

我升級到MySQL 5.1,這是我運行mysql -V時得到的:

mysql  Ver 14.14 Distrib 5.1.56, for pc-linux-gnu (i686) using readline 5.1

但是仍然會發生同樣的錯誤:

[30-Oct-2011 20:26:18] PHP Warning:  mysqli_connect() [<a href='function.mysqli-connect'>function.mysqli-connect</a>]: (HY000/2013): Lost connection to MySQL server at 'sending authentication information', system error: 32 in /home/path/to/my/code.php on line 1029

和以前一樣,錯誤仍然是間歇性的。

升級到MySQL 5.1后,我一直在仔細查看我的PHP錯誤日志。 我注意到其他一些與第一個類似的錯誤。 例如,這是一個這樣的錯誤:

[30-Oct-2011 22:42:29] PHP Warning:  mysqli_connect() [<a href='function.mysqli-connect'>function.mysqli-connect</a>]: (HY000/2013): Lost connection to MySQL server at 'reading authorization packet', system error: 104 in /home/path/to/my/code.php on line 1029

這是我在日志中看到的另一個錯誤:

PHP Warning:  mysqli::mysqli() [<a href='mysqli.mysqli'>mysqli.mysqli</a>]: (HY000/2002): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home/path/to/different/code.php on line 7

在所有情況下,問題從根本上似乎是連接到MySQL失敗。 什么可能導致這個或我如何調試它的想法?

也許這個錯誤報告會有所幫助 - 似乎修復可能是為全局connect_timeout設置更高的超時。 它在MySQL 5.1的后續版本中設置為更高的值(10秒),而早期版本則為5秒。

http://bugs.mysql.com/bug.php?id=28359

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM