为了支持emoji, mysql数据库的编码都改成了 utf8mb4, 由此也引发了mysqlbinlog命令行的错误. 比如执行 mysqlbinlog --help时报错如下:

mysqlbinlog: [ERROR] unknown variable 'default-character-set=utf8mb4'

执行其他操作, 比如查看binlog文件, 导出binlog文件到sql时:

mysqlbinlog mysql-bin.000001
mysqlbinlog mysql-bin.000001 > h:/1.sql

都一样会遇到错误.

解决方法有2种:

  1. 在MySQL的配置 my.cnf 中将default-character-set=utf8mb4 修改为 character-set-server = utf8mb4,但是这需要重启MySQL服务, 比较麻烦

  2. 加参数 --no-defaults

第二种比较好, 但是注意: binlog的文件路径要写完整, 否则识别不了

mysqlbinlog --no-defaults D:/MySQL5.7.26/data/mysql-bin.000001 > h:/1_bin.sql
Logo

更多推荐