mysqlbinlog: unknown variable ‘default-character-set=utf8’

使用mysqlbinlog查看二进制日志出现以下错误:

mysqlbinlog: unknown variable 'default-character-set=utf8'

产生这个问题的原因是因为我在my.cnf中的client选项组中添加了

[client]
default-character-set = utf8

解决办法有两种:

第一种是使用:–no-defaults 参数

mysqlbinlog --no-defaults mysql-bin.000001

另一种方法:使用mysqlbinlog工具查看二进制日志时会重新读取的mysql的配置文件my.cnf,而不是服务器已经加载进内存的配置文件。也就是说只要修改并保存了my.cnf文件,而不需要重起mysql服务器,则使用mysqlbinlog查看时修改后的my.cnf配置文件对mysqlbinlog而言已经生效。所以这里可以使用此方法:把client选项组中default-character-set=utf8选项屏蔽掉,如

#default-character-set = utf8

然后运行mysqlbinlog工具,则不会产生任何问题了。当然记得在不在使用mysqlbinlog工具时,把#default-character-set=utf8
选项恢复为

default-character-set = utf8