为了支持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

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐