开启general log或slow log的时候,前端发出的sql语句中的注释都别屏蔽掉了。
本意加注释我们想通过注释来快速知道sql是由哪个业务模块发出的。这点对dba和研发很有帮助。
一种变通的思路是采用 /*!版本号 执行内容 */的方式来实现。
另外,偶然发现percona tools执行的时候,有类似/*pt-online-schema-change 26317 copy nibble*/的注释被记录在log中。
但是并没发现有任何相关的变量被提前设置。
随后发现mysql也有这样的命令参数
-c, --comments Preserve comments. Send comments to the server. The
default is --skip-comments (discard comments), enable
with --comments.
测试mysql -c登录,执行带有/* test only */的语句,可以被log记录下来。
在my.cnf中client和mysql两个部分分别增加以下comments内容,测试都生效。
[client]
comments
[mysql]
comments
然后mysql --defaults-file=fullname的方式登录,效果相同。