Есть ли способ регистрировать только определенные операции MySQL?
Мне нужно включить его журнал на производственном сервере, но только для команд drop/create. К сожалению, журналирование всего происходит медленно, а мне нужны только эти конкретные команды.
решение1
Нет сложного способа логирования запросов в mysql. Единственное, что вы можете сделать, это следующее:
Общий журнал запросов — это общая запись того, что делает mysqld. Сервер записывает информацию в этот журнал, когда клиенты подключаются или отключаются, и он регистрирует каждый SQL-оператор, полученный от клиентов. Общий журнал запросов может быть очень полезен, когда вы подозреваете ошибку в клиенте и хотите точно знать, что клиент отправил в mysqld.
решение2
вы можете попробовать включить binlog. Это не так сильно скажется на производительности, как обычные журналы [регистрируются только команды, изменяющие данные]. Но это может не подойти для ваших нужд, если вы, например, хотите регистрировать, с какого IP была запущена данная команда drop.
решение3
Есть очень симпатичный обходной путь. Просто передайте tail
вывод ' в grep
, например, так:
$ tail -f /var/log/mysql/mysql.log | grep "update "