有没有办法只记录某些 MySQL 操作?
我需要在生产服务器中启用它的日志,但仅限于删除/创建命令。不幸的是,记录所有内容的速度很慢,而我只需要这些特定的命令。
答案1
没有复杂的方法来记录 mysql 中的查询。您唯一能做的就是执行以下操作:
通用查询日志是 mysqld 正在执行的操作的通用记录。当客户端连接或断开连接时,服务器将信息写入此日志,并记录从客户端收到的每个 SQL 语句。当您怀疑客户端出现错误并想确切了解客户端向 mysqld 发送的内容时,通用查询日志非常有用。
答案2
您可以尝试打开 binlog。它不会像常规日志那样严重影响您的性能 [仅记录更改数据的命令]。但如果您例如想要记录从哪个 ip 发出了给定的 drop 命令,它可能不适合您的需求。
答案3
有一个非常好的解决方法。只需将tail
的输出传递给grep
,例如:
$ tail -f /var/log/mysql/mysql.log | grep "update "