mysql 主从同步出现问题

昨天排查mysql数据库主从同步的错误,查看mysql日志时发现无法导出日志。

报错内容:    mysqlbinlog: unknown variable 'default-character-set=utf8'

 

解决方法 :   mysqlbinlog --no-defaults  -v  --stop-position=88888888  master-bin.000221 > ./mysql_tmp.log

                                             无默认值                   设置结束位置                                              输出到指定文件

 

使用 AWK 命令: 

找出出错的文件行号:

     user@linux:~# cat mysql_tmp.log | awk '/end_log_pos 7307725/ {print NR}'
     93049
                          

选择行号附近的数值:     cat mysql_tmp.log | awk 'NR==92900,NR==93100'

  注: NR =  行号,需要设置在报错行数前后!设置其前后N行,找出其对应的sql语句

 

验证报错导致的SQL语句, 在从库执行该语句,使主从数据正常。

可直接查找出错误SQL数据

 mysqlbinlog --no-defaults -v -v --base64-output=DECODE-ROWS master-bin.000445 | grep -A '10' 166900259

 

清理数据库主从日志:
    首先需要保证在主数据库服务器在无更改的情况下才可以进行操作,否则容易漏掉数据。
    先停止从库,清理从库
        stop slave;
        reset slave all;
    清理主库
        reset master;
    查看主库状态
        show master status;
    设置从库同步位置
        change master to master_host='IP地址', master_port= mysql_port, master_user='mysql_user', master_password='mysql_passwd',  master_log_file='master-bin.000001', master_log_pos=107;
    启动从库同步
        start slave;
    查看从库状态是否正常
        show slave status\G;
 

你可能感兴趣的:(mysql)