Ограничение на количество SQL коннектов

Статус
В этой теме нельзя размещать новые ответы.

sskiev

Постоялец
Регистрация
1 Фев 2008
Сообщения
97
Реакции
13
После переезда на новый хостинг просматривал логи ошибок и увидел, что иногда выходит ошибка
mysql_connect() [<a href='function.mysql-connect'>function.mysql-connect</a>]: Too many connections in /includes/database/mysql.php on line 14

Если перевести, то получается - слишком много коннектов SQL. А можно ли это количество увеличить и как - в скриптах или к хостеру обращаться? Может как-то по-другому с этим бороться?
 
mysql системная переменная max_connections указывает сколько подключений возможно, по умолчанию обычно 100, хостер может изменить, посмотреть можно с SHOW VARIABLES.

С запросом SHOW PROCESSLIST пересмотреть посмотреть все запросы, может проблемы с какими-то из них.

Можно попробовать использовать php функцию mysql_close() в конце скрипта.
 
А поподробнее разжевать про php функцию mysql_close() в конце скрипта можно - для не очень шарящих?
 
mysql_close() закрывает соединение с mysql, вообще php закрывает соединение автоматически после завершения скрипта, но на это уходит какое-то время, а с mysql_close() можно ускорить закрытие соединения и уменьшить использование ресурсов.
 
Про функцию я понял, спасибо, но как определить конец скрипта куда ее вставить в данном случае Shop-Script
 
конец скрипта в конце выполняемого файла можно в ссылке увидеть какой файл, обычно index.php и добавить в конце файла эту функцию. Или через htaccess автоматически добавлять к каждому файлу:
.htaccess файл:

Код:
php_value auto_append_file /home/moisait/public_html/_mysql_close.php
php файл _mysql_close.php:
PHP:
<?php
mysql_close();
?>
 
polyetilen - иногда лучше жевать (или читать оф. доки), чем говорить.
mysql_close срабатывает также неявно по окончании обработки скрипта.
Другое дело если использовать постоянные соединения

Меняй хостера, или увеличь лимит.
 
Спасибо, так и сделал - хостер увеличил количество SQL по просьбе с 100 до 2000. Заодно в mysql.php поставил вместо
$r = mysql_connect($host,$user,$pass);

$r = mysql_pconnect($host,$user,$pass);


Вроде все работает без ошибок SQL
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху