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

Тема в разделе "Shop-script", создана пользователем sskiev, 22 окт 2008.

Статус темы:
Закрыта.
  1. sskiev

    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. А можно ли это количество увеличить и как - в скриптах или к хостеру обращаться? Может как-то по-другому с этим бороться?
     
  2. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    mysql системная переменная max_connections указывает сколько подключений возможно, по умолчанию обычно 100, хостер может изменить, посмотреть можно с SHOW VARIABLES.

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

    Можно попробовать использовать php функцию mysql_close() в конце скрипта.
     
  3. sskiev

    sskiev Постоялец

    Регистр.:
    1 фев 2008
    Сообщения:
    97
    Симпатии:
    13
    А поподробнее разжевать про php функцию mysql_close() в конце скрипта можно - для не очень шарящих?
     
  4. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    mysql_close() закрывает соединение с mysql, вообще php закрывает соединение автоматически после завершения скрипта, но на это уходит какое-то время, а с mysql_close() можно ускорить закрытие соединения и уменьшить использование ресурсов.
    http://php.net/manual/ru/function.mysql-close.php
     
  5. sskiev

    sskiev Постоялец

    Регистр.:
    1 фев 2008
    Сообщения:
    97
    Симпатии:
    13
    Про функцию я понял, спасибо, но как определить конец скрипта куда ее вставить в данном случае Shop-Script
     
  6. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    конец скрипта в конце выполняемого файла можно в ссылке увидеть какой файл, обычно index.php и добавить в конце файла эту функцию. Или через htaccess автоматически добавлять к каждому файлу:
    .htaccess файл:

    Код:
    php_value auto_append_file /home/moisait/public_html/_mysql_close.php
    
    php файл _mysql_close.php:
    PHP:
    <?php
    mysql_close
    ();
    ?>
     
    sskiev нравится это.
  7. ustas76

    ustas76 Постоялец

    Регистр.:
    15 фев 2007
    Сообщения:
    140
    Симпатии:
    25
    polyetilen - иногда лучше жевать (или читать оф. доки), чем говорить.
    mysql_close срабатывает также неявно по окончании обработки скрипта.
    Другое дело если использовать постоянные соединения
    http://www.php.net/manual/ru/function.mysql-pconnect.php
    Меняй хостера, или увеличь лимит.
     
  8. sskiev

    sskiev Постоялец

    Регистр.:
    1 фев 2008
    Сообщения:
    97
    Симпатии:
    13
    Спасибо, так и сделал - хостер увеличил количество SQL по просьбе с 100 до 2000. Заодно в mysql.php поставил вместо
    $r = mysql_connect($host,$user,$pass);

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


    Вроде все работает без ошибок SQL
     
Статус темы:
Закрыта.