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

Как узнать, было ли отключено какое-либо соединение MySQL или истекло время ожидания?

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

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

Любые предложения о том, как диагностировать эту проблему с разрывом / истечением времени ожидания подключения к базе данных?

Спасибо

РЕДАКТИРОВАТЬ:

Журнал медленных запросов включен в my.cnf:

log-slow-queries=/var/log/mysql-slow-queries.log

И когда я делаю

mysql> show global status;

Я получил:

| Slow_queries                      | 11402347     | 

Так что очень много медленных запросов. Но файла /var/log/mysql-slow-queries.log не существует. Это почему?

Файл журнала медленных запросов должен существовать и должен быть доступен для записи пользователем mysql. При стандартной установке mysql я бы сделал:

touch /var/log/mysql-slow-queries.log
chown mysql.mysql /var/log/mysql-slow-queries.log

А затем перезапустите mysql.

Если вы установите файл журнала медленной работы в определенном каталоге (например, /var/log/mysql/slow.log) с достаточным количеством разрешений, MySQL создаст файл журнала самостоятельно:

mkdir /var/log/mysql
chown mysql.mysql /var/log/mysql

Вы включили журнал медленных запросов? Он пустой или работает?

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

Вы можете попробовать использовать новую MySQL Workbench. С помощью администратора MySQL внутри Workbench вы можете просмотреть все открытые соединения в инструменте в виде списка. Очень полезно видеть ваши соединения, а также управлять и контролировать ваш сервер в течение короткого времени.

Другой способ - взять инструкцию MySQL:

показать список процессов;

это показывает вам выполняющиеся запросы и вы можете видеть, что зависает.

Возможно, я смогу вам помочь. Для журнала медленных запросов вы можете получить дополнительную информацию на сайте MySQL или Вот

mysqladmin extended-status|head здесь тоже может помочь.