Мой веб-сайт показывает ошибку, связанную с базой данных.
Ошибка: Предупреждение: mysql_connect () [function.mysql-connect]: Слишком много подключений в /home/host1/public_html/www.mysite.com/db_connection.php в строке 2. Ошибка подключения. Слишком много подключений.
Иногда я получаю сообщение об ошибке, но когда я обновляю страницу, скажем, через 20 секунд ошибка исчезает, и страница отображается нормально. Я попытался исправить это, поместив код, чтобы закрыть соединение sql после завершения загрузки страницы. Но даже после этого я получил эту ошибку. Можете ли вы сказать нам, что может быть не так? Это проблема сервера или это связано с моим кодом?
Если вы запустите этот запрос:
SHOW PROCESSLIST;
Вы увидите, что все соединения в настоящее время активны и что они делают. Это должно дать вам лучшее представление о том, что мешает. Со временем соединения могут зависнуть, и, возможно, они могут оставаться там долгое время. Однако более вероятно, что у вас есть взломанный сценарий (или плохо написанный сценарий, вызывающий множество блокировок).
Пара вещей, которые нужно проверить:
Вы используете mysql_pconnect для подключения к базе данных? Это создаст постоянное соединение, которое останется открытым после его установки и будет повторно использовать это соединение вместо того, чтобы каждый раз создавать новое соединение с базой данных.
Также проверьте max_connections и max_user_connections в файле my.cnf, так как вы можете достичь предела, установленного в этих двух переменных.
Вероятно, вы не закрываете соединение в своем php-скрипте. С помощью mysql_close (), который явно закрывает соединения. Использование mysql_close () вместе с mysql_connect () гарантирует, что соединение будет закрыто.
Если вы успешно закрываете соединения после завершения запросов, попробуйте увеличить max_connections в my.cnf.
Администратор MySQL в своих Пакет GUI-инструментов может дать вам представление о том, что происходит.