有两个binlog日志文件mysql-bin.000001,mysql-bin.000002,大小都是1G左右。现在要在另外一个库上做完全恢复。想到通常的恢复方法:
mysqlbinlog /usr/local/var/mysql1/mysql-bin.000001 | mysql -uroot -S /usr/local/var/mysql2/mysql2.sock
mysqlbinlog /usr/local/var/mysql1/mysql-bin.000002 | mysql -uroot -S /usr/local/var/mysql2/mysql2.sock
在恢复mysql-bin.000001的时候很顺利,但在恢复mysql-bin.000002时,有一个报错:
ERROR at line 24826643: Unknown command '\"'
搜了一圈,大部分定位为binlog日志导出时的字符集与恢复到新库时的字符集不一致。查看了老库的character_set。
然后再次尝试了几次恢复
mysqlbinlog --set-charset=latin1 /usr/local/var/mysql1/mysql-bin.000001 | mysql -uroot -S /usr/local/var/mysql2/mysql2.sock --default-character-set=latin1
mysqlbinlog --set-charset=utf8 /usr/local/var/mysql1