У меня есть веб-сайт 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 работают на одном компьютере, и я подключаюсь к MySQL через localhost.
Кроме того, это озадачивает, потому что мой скрипт PHP может успешно подключаться к серверу MySQL.возможно, для 90% страниц.
Насколько я могу судить, на моем сервере достаточно свободного ОЗУ и ЦП:
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-скрипт периодически теряет соединение с моим MySQL-сервером на localhost?
Я обновился до 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.Есть идеи, что может быть причиной этого или как я могу это отладить?