问题
linux执行以下语句时报错:
mysqlbinlog --no-defaults --start-datetime="误操作前的时间" --stop-datetime="误操作后的时间" /var/lib/mysql/mysql-bin.00000X > binlog_content.sql
mysqlbinlog: Character set '#255' is not a compiled character set and is not specified in the '/usr/share/mariadb/charsets/Index.xml' file
错误原因:mysql版本和mysqlbinlog版本不匹配
mysql版本和mysqlbinlog版本不匹配
检查当前 mysqlbinlog 版本
mysqlbinlog --version
检查当前 mysql版本
先登录MySQL:mysql -u 用户名 -p
回车,输入登录密码
查询:select version();
我使用的是 MySQL 8 和 mysqlbinlog 3.4 ,后者版本太低了,应该更换成新版本。
解决方法:更新 mysqlbinlog 版本
更新 mysqlbinlog 版本
前往mysql官网下载新包
下载地址:https://www.mysql.com/cn/downloads/
解压
复制和替换mysqlbinlog
找到bin目录下的mysqlbinlog文件,替换到linux指定目录
解压后的目录参考:D:\Downloads\mysql-8.0.41-linux-glibc2.28-x86_64\mysql-8.0.41-linux-glibc2.28-x86_64\mysql-8.0.41-linux-glibc2.28-x86_64\bin
查找linux下的mysqlbinlog路径:
which mysqlbinlog
用新的mysqlbinlog替换:
最好先备份一下,把原有的用cp命令复制到其它目录,再把新的放到原目录。
验证
重新执行下mysqlbinlog --version,看到版本号更新了即可。