系统重启后如何修复 MySQL 8 复制错误 1062?

系统重启后如何修复 MySQL 8 复制错误 1062?

系统重启后,我的复制突然停止。所以我尝试让从属服务器恢复到最新状态。

为此,我从主数据库创建一个转储并将其导入到从属数据库中,例如

mysqldump --host=MASTERADDR --port=MYPORT -u root --password=DBPASS DBNAME > FILE.sql
mysql --host=SLAVEADDR --port=MYPORT -u root --password=DBPASS DBNAME < FILE.sql

然后在从服务器上我“重新启动”我的复制:

STOP SLAVE;
RESET SLAVE;
CHANGE MASTER TO MASTER_HOST = 'MASTERADDR', MASTER_PORT = MYPORT, MASTER_USER = 'REPLUSER', MASTER_PASSWORD = 'REPLPW', MASTER_AUTO_POSITION = 1;
START SLAVE;
SELECT SLEEP(1);
SHOW SLAVE STATUS\G

以前这种方法很有效。但现在我收到以下错误代码:

Last_Errno: 1062
Last_Error: Coordinator stopped because there were error(s) in the worker(s). The most recent failure being: Worker 1 failed executing transaction '691042d7-6ca8-11ed-a122-0242ac120002:4' at master log mysql-bin.000001, end_log_pos 1938. See error log and/or performance_schema.replication_applier_status_by_worker table for more details about this failure or others, if any.

我已经尝试过:

SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;

但这不起作用而且似乎被忽略了。

请问,我该怎么做才能重新开始复制​​?

答案1

MASTER_AUTO_POSITION = 1;可能无效。0 或 4 是 binlog 的开始。但您没有指定哪个 binlog。

SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;表示跳过复制流中的下一个命令。 这是具有破坏性的,在不知道跳过了什么查询的情况下不应使用。

RESET SLAVE也是相当激烈的。

您是否拥有自系统设置以来的所有 binlog?如果没有,您是否有一个特定的点(binlog 名称 + pos)?(听起来你没有。)

GTID 是否启用?

最底线是,我怀疑您需要从主服务器重建副本。

家庭作业:阅读更多有关复制的内容。

相关内容