Kohana 3 и ошибка «Слишком много соединений» - PullRequest
0 голосов
/ 19 сентября 2011

У меня есть производственное веб-приложение, которое управляет внутренней системой и веб-страницей.Не только как CMS + Web, но и как система контроля пользователей, управление запросами, CMS и web.Обе системы имеют слишком много пользователей (администраторы, редакторы и конечные пользователи).Система использует MySQL в качестве движка БД.

Итак, вы находитесь в контексте.

У меня была следующая ошибка SQL:

Database_Exception [ 0 ]: [1040] Too many connections ~ MODPATH/database/classes/kohana/database/mysql.php [ 67 ]

Если смотреть со стороны сервера, это реально, сервер имел слишком много соединений с механизмом БД.Сообщение верное.

Сайт не работает.Я перезагружаю Apache и все работает нормально.Но очевидно, что это когда-нибудь произойдет.

Я гуглюсь и читаю руководство по MySQL и вижу, что существует конфигурация для увеличения числа соединений (с 151, по умолчанию, до другого значения).Но я читаю о конфигурации Kohana и читаю, что существует система кэширования запросов (в файл конфигурации базы данных).Итак, я не знаю, сохраняет ли этот кеш в памяти результат запроса или же кеш сам сохраняет запрос, чтобы предотвратить перегрузку Query_Builder или ORM, поэтому, если запрос был сгенерирован ранее, не повторятьсгенерируйте его и только выполните.

Мне нужно решение, но я избегаю (насколько это возможно) изменения конфигурации MySQL.

Спасибо!

1 Ответ

0 голосов
/ 09 ноября 2011

Проверьте настройку max_connections в файле конфигурации mysql my.ini.По умолчанию установлено значение 100, вы можете изменить его на 300 или более.

Затем посмотрите, какие процессы подключены к mysql с помощью команды netstat -np, и уничтожьте неизвестные.

В конце концовизменения перезапускают ваш демон mysql:

/etc/rc.d/init.d/mysqld restart

Если это не поможет, прочитайте: http://dev.mysql.com/doc/refman/5.5/en/too-many-connections.html

И не забудьте создать дампы для всех баз данных mysql.

...