Назад | Перейти на главную страницу

MySQL max_user_connections

Через пару недель мы выпускаем сайт, который был разработан на локальной машине, но теперь, когда мы тестировали на сервере разработки, мы получили

Ошибка MySQL "max_user_connections".

Мы поговорили с принимающей компанией (крупнейшей в Швеции), и они сказали, что мы не закрываем наши связи должным образом. Но дело в том, что мы используем ТОЧНЫЙ тот же код на другом хосте, где он работает. И еще я добавил

echo "closed"; 

в функции database_close, чтобы теперь в самом низу самой страницы было «закрыто». Для меня это означает, что мы закрываем соединение, кто-нибудь знает, что может быть не так? Мы подключаемся через функцию PHP PDO и закрываем ее, устанавливая для нее значение «null», все в соответствии с руководством.

На веб-сайте есть кое-что о PHP, что означает, что поток подключения MySQL не отбрасывается, даже если вы полностью разорвали сокет; он все еще висит в ожидании, когда его пожнут.

Вы хотите посмотреть на свои настройки wait_timeout. При установке по умолчанию это безумно долго. Веб-сайту потребуется всего около 20 секунд. Вероятно, вам также понадобится этот низкий уровень, если вы используете постоянные соединения.

Если вы вызываете mysql_close для каждого скрипта, это должно быть проблемой вашего хостинг-провайдера, а не вашей.

Если вы находитесь на сервере общего хостинга, то, вероятно, это какой-то другой сайт, влияющий на общий сервер mysql. Убедитесь, что это не так.

Если вы используете PHP ... попробуйте использовать

mysql_close ();

В зависимости от версии PHP это может помочь, до версии 5.3 функция не требовала идентификатора ссылки.

Т