Ошибка установления соединения с базой данных. Как определить, являются ли эти соединения реальными?

Ошибка установления соединения с базой данных. Как определить, являются ли эти соединения реальными?

Сегодня я столкнулся с проблемой, связанной с исчерпанием возможностей MySQL по подключению к базе данных.

Я получаю следующую ошибку: Error establishing a database connection. Когда я пытаюсь получить доступ к /phpma, я получаю эту ошибку: phpMyAdmin - Error #1040 - Too many connections.

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

Я работаю на CentOS. Есть ли какой-то простой способ проверить эти соединения? Есть ли что-то, на что мне следует обратить внимание, или, может быть, просто способ отбраковки соединений, которые были активны слишком долго (MySQL вообще так работает?).

решение1

Чтобы увидеть, какие потоки запущены в MySQL, из Linux:

root@myserver:~> mysqladmin processlist

Эквивалентный этому запрос MySQL будет выглядеть так:

root@myserver:~> mysql
mysql> SHOW FULL PROCESSLIST\G

Также, проверьтеПроверка информации о потокечтобы увидеть, что означает вывод. В частности:

КомандаиСостояниеуказать, что делает поток.

Большинство состояний соответствуют очень быстрым операциям. Если поток остается в данном состоянии в течение многих секунд, может быть проблема, которую необходимо исследовать.

Главное — просмотреть список процессов MySQL и определить, не выглядит ли что-нибудь подозрительным, учитывая характер вашей среды, например, длительно выполняющиеся процессы или большое количество процессов.

решение2

Используйте эту команду и выведите список запущенных приложений MySQL,

ps -aux | grep 'mysql'

затем запустите нужный вам MySQL на порту по умолчанию "3306"

Связанный контент