Клиент использует 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
здесь тоже может помочь.