本文通過兩個模擬場景,說明 mysqlbinlog 版本過低解析高版本 Binlog 時的典型故障。
mysqlbinlog --version
# mysqlbinlog Ver 3.3 for Linux at x86_64
mysqlbinlog binlog_file 即報錯,提示位置錯誤或格式無法識別。mysqlbinlog 至 3.4 或更高版本。mysqlbinlog -d db_name binlog_file 導出增量 SQL。
mysqlbinlog 重新導出即正常。| MySQL 服務器 | 最低 mysqlbinlog 版本 | 備註 |
|---|---|---|
| 5.5 | 3.3 | |
| 5.6 | 3.4 | GTID、Row 事件變更 |
| 5.7 | 3.5 | JSON、Generated Columns |
| 8.0 | 8.0 | 全新事件結構、Data Dictionary |
mysqlbinlog 絕對路徑(如 /usr/local/mysql-5.6/bin/mysqlbinlog)。mysqlbinlog --version 與目標庫版本兼容性。