Понякога при динамични сайтове, ползващи бази данни, е възможно да се появи следното съобщение:
mysql_connect() [<a href='function.mysql-connect'>function.mysql-connect</a>]: User cpanelname_mysqluser already has more than 'max_user_connections' active connections in /home/cpaneluser/public_html/file.php
Причината за появата му се дължи на достигнат максимален брой конкуренти MySQL връзки за MySQL потребителя, т.е броят на връзките към базата данни е запълнен.
Максималният брой конкуренти MySQL връзки, които може да има определен MySQL потребител, е 30. Това е глобална настройка при услугата споделен хостинг. Посочената стойност е напълно достатъчна за над 99% от приложенията, но в някои случаи връзките биха могли да се запълнят. Причините за запълването могат да бъдат много и най-различни, ето които са едни от най-често срещаните.
Изтегляне на външни ресурси, например rss емисии, валутни курсове, прогнози за времето
В случай че отсрещния сървър, от който се изтегля ресурсът, временно е недостъпен и/или има технически проблем, възможно е връзката към базата данни във Вашия сайт да остане отворена, тъй като се изчаква отговор. Ако от сайта се изтеглят външни ресурси в реално време, добре е да бъдат изключени и да се провери дали отсрещният сървър, от който се изтегля ресурсът е активен. Добра практика е ресурсите да не се изтеглят в реално време. Удачно е ресурсът да се изтегля на определен период от време, а в сайта да се показва вече изтеглената информация.
Бавни заявки към базата данни
В случай че има заявки към базата данни, които не са оптимални и се изпълняват дълго време, е възможно да се появи посочената грешка. Оптималното време за изпълнение на заявки към базите данни е в милисекунди. Ако обаче са налични заявки, които се изпълняват много време, то следващите се натрупват. Тогава се изчаква изпълнението им, което може да доведе появата на грешката.
PHP скрипт не затваря връзката с базата данни
Възможно е php скрипт поради някаква причина да не затваря връзката към базата данни. Добра практика е след като бъде отворена връзка към базата данни и след приключване на действията със самата база данни (свързване, извличане на данни, добавяне на данни и т.н.), то връзката да бъде затворена. За сайтове на php може да се ползва mysql_close()
.
Ползване на един и същ MySQL потребител в различните приложения в акаунта
Възможно е ако имате повече от едно приложение в базата данни и ползвате един и същ MySQL потребител, то връзките да бъдат запълнени. Добра практика е да се ползват отделни потребители за всяка база данни.