一,从库机器上: 从库mysql日志中的报错信息给出了日志文件名和end_log_pos
2024-10-12T09:41:23.761203Z 414 [ERROR] [MY-013146] [Repl] Replica SQL for channel '':
Worker 1 failed executing transaction 'ANONYMOUS' at source log mysql-master-bin.000002,
end_log_pos 207422537;
Column 5 of table 'mybase.user' cannot be converted from type 'smallint' to type 'tinyint(1)',
Error_code: MY-013146
二,主库机器上:找到发生问题时的时间:
[root@web ~]# mysqlbinlog --start-position=207422537 /data/lib/mysql/mysql-master-bin.000002 | more
内容格式如下:
# at 207422537
#241012 17:41:23 server id 1 end_log_pos 207422568 CRC32 0xa8385d11 Xid = 1586253
COMMIT/*!*/;
可以看到时间:241012 17:41:23
三,主库机器上:获取指定时间内的日志
mysqlbinlog --start-datetime="2024-10-12 17:40:00" --stop-datetime="2024-10-12 17:45:00"
--database=mybase --base64-output=decode-rows -v /data/lib/mysql/mysql-master-bin.000002
> /home/ali/10121740.txt
从导出的文件中可以查到发生问题时的sql
注意: 需要加此两个参数:
--base64-output=decode-rows -v
-v: 负责把具体的sql显示出来
-
-vv
:查看具体SQL语句及备注。 -v
:查看具体SQL语句。-
--base64-output=decode-rows
:解析Binlog日志文件
标签:主库,主从复制,log,17,--,报错,mysql,从库 From: https://www.cnblogs.com/architectforest/p/18464156