При разработке приложения, которое использует MySQL, может быть полезно наблюдать в режиме реального времени, какие запросы выполняются.
Как видеть все входящие запросы MySQL?
От имени пользователя root отредактируйте /etc/mysql/my.cnf
и добавьте этот абзац внизу:
[mysqld]
general_log=on
general_log_file=/var/log/mysql/query.log
В роли пользователя root выполните следующие команды:
service mysql stop
service mysql start
Затем просмотрите журнал: [ 116]
tail -f /var/log/mysql/query.log
Обратите внимание, что этот параметр замедляет работу MySQL примерно на 15%, поэтому удаляйте или комментируйте абзац (затем перезапускайте), когда он вам больше не нужен.
Выполните эту команду с помощью сценария оболочки Linux
mysqladmin-uroot-p'mysql_password '-i 2 processlist
Генерирует processlist и автоматически обновит на каждом минуты
Хотя ответ Николя Рауля верен, обратите внимание, что начиная с mysql-server-5.7 файл /etc/mysql/my.cnf
создается из конфигурации файлы как в /etc/mysql/conf.d
, так и в /etc/mysql/mysqld.conf.d
.
Поэтому, чтобы решение работало, необходимо изменить файл: /etc/mysql/mysqld.conf.d/mysqld.cnf
. Итак, строки:
#general_log_file = /var/log/mysql/mysql.log
#general_log = 1
Должны быть раскомментированы, файл сохранен и служба перезапущена с помощью sudo service mysql restart
.
В противном случае вы можете столкнуться с ошибками.