MySQL: регистрировать только команды удаления/создания

MySQL: регистрировать только команды удаления/создания

Есть ли способ регистрировать только определенные операции MySQL?

Мне нужно включить его журнал на производственном сервере, но только для команд drop/create. К сожалению, журналирование всего происходит медленно, а мне нужны только эти конкретные команды.

решение1

Нет сложного способа логирования запросов в mysql. Единственное, что вы можете сделать, это следующее:

Общий журнал запросов — это общая запись того, что делает mysqld. Сервер записывает информацию в этот журнал, когда клиенты подключаются или отключаются, и он регистрирует каждый SQL-оператор, полученный от клиентов. Общий журнал запросов может быть очень полезен, когда вы подозреваете ошибку в клиенте и хотите точно знать, что клиент отправил в mysqld.

http://dev.mysql.com/doc/refman/5.1/en/query-log.html

решение2

вы можете попробовать включить binlog. Это не так сильно скажется на производительности, как обычные журналы [регистрируются только команды, изменяющие данные]. Но это может не подойти для ваших нужд, если вы, например, хотите регистрировать, с какого IP была запущена данная команда drop.

решение3

Есть очень симпатичный обходной путь. Просто передайте tailвывод ' в grep, например, так:

$ tail -f /var/log/mysql/mysql.log | grep "update "

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