添加表分区,导致MySQL主从同步中断,报错:Last_SQL_Errno: 1517

环境说明:

MySQL 8.0.3X
主库:192.168.1.101
从库:192.168.1.102

问题现象:

主库mysqldump备份数据,备份期间,主库执行了某张表的添加分区的操作,使用主库备份的sql文件,恢复到从库,配置主从同步后,数据同步报错:

Replica_IO_Running: Yes
Replica_SQL_Running: No
Last_Errno: 1517
Worker 1 failed executing transaction '019bd70c-9790-11f0-b2f1-08002706ac0a:50428' at source log mysql-bin.000001, end_log_pos 104693517; 
Error 'Duplicate partition name p_future' on query. 
Default database: 'cjc'. 
Query: 'ALTER TABLE t_target ADD PARTITION (PARTITION p_future VALUES LESS THAN (TO_DAYS('2027-01-01')))'

问题重现:

重现过程如下:

主库:添加复制用户

create user repl@'192.168.1.101' identified  with mysql_native_password by 'hBSwRL_3rhE';
grant  replication  slave  on *.*  to repl@'192.168.1.101';

create  user  repl@'192.168.1.102' identified  with mysql_native_password by 'hBSwRL_3rhE';
grant  replication  slave  on *.*  to repl@'192.168.1.102';
flush  privileges;
reset  master;
show master status;

主库:新增测试数据

create database cjc;
use cjc;

-- 新增分区表
CREATE TABLE t_target (
    id INT NOT NULL,
    dt DATE NOT NULL,
    PRIMARY KEY (id, dt)
) ENGINE=InnoDB
PARTITION BY RANGE (TO_DAYS(dt)) (
    PARTITION p_old VALUES LESS THAN (TO_DAYS('2026-01-01'))
);

-- 插入数据
INSERT INTO t_target VALUES (1, '2021-06-01');
INSERT INTO t_target VALUES (2, '2022-06-01');
INSERT INTO t_target VALUES (3, '2023-06-01');
INSERT INTO t_target VALUES (4, '2024-06-01');
INSERT INTO t_target VALUES (5, '2025-06-01');

mysql> select * from t_target;
+----+------------+
| id | dt         |
+----+------------+
|  1 | 2021-06-01 |
|  2 | 2022-06-01 |
|  3 | 2023-06-01 |
|  4 | 2024-06-01 |
|  5 | 2025-06-01 |
+----+------------+
5 rows in set (0.00 sec)


-- 创建一个“延迟大表”,填充足够多行,让 mysqldump 导出它需要几秒钟
CREATE TABLE t_delay (
    id INT AUTO_INCREMENT PRIMARY KEY,
    data CHAR(100) DEFAULT 'padding'
) ENGINE=InnoDB;


-- 存储过程快速插入 10 万行(约几秒导出时间)
DELIMITER $$
CREATE PROCEDURE fill_delay(IN total INT)
BEGIN
    DECLARE i INT DEFAULT 1;
    WHILE i <= total DO
        INSERT INTO t_delay (data) VALUES (REPEAT('x', 100));
        SET i = i + 1;
    END WHILE;
END$$
DELIMITER ;

CALL fill_delay(1000000); 

重复插入数据:
insert into t_delay(data) select data from t_delay;
insert into t_delay(data) select data from t_delay;
insert into t_delay(data) select data from t_delay;
...

mysql> select count(*) from t_delay;
+----------+
| count(*) |
+----------+
|   806480 |
+----------+
1 row in set (0.10 sec)

主库:会话A:导出

mysqldump -uroot -p --single-transaction --source_data=2 --hex-blob --extended-insert=TRUE --routines --triggers --events --set-gtid-purged=OFF  --databases cjc >/home/mysql/bak/mysql_20260620.sql

导出时,会立即开启一致性快照并记录 binlog 位点,然后进入逐表导出阶段

主库:会话 B(主库):查看备份进度

需要在 大表 t_delay 开始被导出开始、t_target 被导出之前 执行 DDL,对 t_target 添加分区;

[mysql@cjc-db-01 bak]$ cat mysql_20260620.sql |grep -i t_delay|more

主库:会话 C(主库),添加分区

mysql> ALTER TABLE t_target ADD PARTITION (PARTITION p_future VALUES LESS THAN (TO_DAYS('2027-01-01')));
Query OK, 0 rows affected (0.19 sec)
Records: 0  Duplicates: 0  Warnings: 0

备份文件传给备库:

[mysql@cjc-db-01 bak]$ scp mysql_20260620.sql 192.168.1.102:/home/mysql/bak/
mysql@192.168.1.102's password: 
mysql_20260620.sql           100%   86MB  43.2MB/s   00:02    

备库导入:

[mysql@cjc-db-02 bak]$ mysql -uroot -p < mysql_20260620.sql 

检查主、备库 分区表表结构:

主库:

mysql> show create table cjc.t_target\G;
*************************** 1. row ***************************
       Table: t_target
Create Table: CREATE TABLE `t_target` (
  `id` int NOT NULL,
  `dt` date NOT NULL,
  PRIMARY KEY (`id`,`dt`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
/*!50100 PARTITION BY RANGE (to_days(`dt`))
(PARTITION p_old VALUES LESS THAN (739982) ENGINE = InnoDB,
 PARTITION p_future VALUES LESS THAN (740347) ENGINE = InnoDB) */
1 row in set (0.00 sec)

备库:备库已经有新分区p_future,实际在mysqldump开始时刻并没有这个分区

mysql> show create table cjc.t_target\G;
*************************** 1. row ***************************
       Table: t_target
Create Table: CREATE TABLE `t_target` (
  `id` int NOT NULL,
  `dt` date NOT NULL,
  PRIMARY KEY (`id`,`dt`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
/*!50100 PARTITION BY RANGE (to_days(`dt`))
(PARTITION p_old VALUES LESS THAN (739982) ENGINE = InnoDB,
 PARTITION p_future VALUES LESS THAN (740347) ENGINE = InnoDB) */
1 row in set (0.01 sec)

备库:配置主从同步

[mysql@cjc-db-02 bak]$ head -n 50 mysql_20260620.sql |grep MASTER_LOG_POS
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=104693243;

开始配置:

CHANGE REPLICATION SOURCE TO 
SOURCE_HOST='192.168.1.101', 
SOURCE_PORT = 3308, 
SOURCE_USER='repl', 
SOURCE_PASSWORD='hBSwRL_3rhE', 
SOURCE_LOG_FILE='mysql-bin.000001', 
SOURCE_LOG_POS=104693243,
SOURCE_CONNECT_RETRY=10;

启动主从同步,报错 1517,问题重现成功。

mysql> START REPLICA;
Query OK, 0 rows affected (0.43 sec)

mysql> SHOW REPLICA STATUS\G;
*************************** 1. row ***************************
             Replica_IO_State: Waiting for source to send event
                  Source_Host: 192.168.1.101
                  Source_User: repl
                  Source_Port: 3308
                Connect_Retry: 10
              Source_Log_File: mysql-bin.000001
          Read_Source_Log_Pos: 104693517
               Relay_Log_File: mysql-relay-bin.000002
                Relay_Log_Pos: 326
        Relay_Source_Log_File: mysql-bin.000001
           Replica_IO_Running: Yes
          Replica_SQL_Running: No
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 1517
                   Last_Error: Coordinator stopped because there were error(s) in the worker(s). The most recent failure being: Worker 1 failed executing transaction '019bd70c-9790-11f0-b2f1-08002706ac0a:50428' at source log mysql-bin.000001, end_log_pos 104693517. See error log and/or performance_schema.replication_applier_status_by_worker table for more details about this failure or others, if any.
                 Skip_Counter: 0
          Exec_Source_Log_Pos: 104693243
              Relay_Log_Space: 810
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Source_SSL_Allowed: No
           Source_SSL_CA_File: 
           Source_SSL_CA_Path: 
              Source_SSL_Cert: 
            Source_SSL_Cipher: 
               Source_SSL_Key: 
        Seconds_Behind_Source: NULL
Source_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 1517
               Last_SQL_Error: Coordinator stopped because there were error(s) in the worker(s). The most recent failure being: Worker 1 failed executing transaction '019bd70c-9790-11f0-b2f1-08002706ac0a:50428' at source log mysql-bin.000001, end_log_pos 104693517. See error log and/or performance_schema.replication_applier_status_by_worker table for more details about this failure or others, if any.
  Replicate_Ignore_Server_Ids: 
             Source_Server_Id: 244101
                  Source_UUID: 019bd70c-9790-11f0-b2f1-08002706ac0a
             Source_Info_File: mysql.slave_master_info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
    Replica_SQL_Running_State: 
           Source_Retry_Count: 86400
                  Source_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 260620 10:32:41
               Source_SSL_Crl: 
           Source_SSL_Crlpath: 
           Retrieved_Gtid_Set: 019bd70c-9790-11f0-b2f1-08002706ac0a:50428
            Executed_Gtid_Set: 0f83b1dc-9790-11f0-959d-080027106669:1-100
                Auto_Position: 0
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Source_TLS_Version: 
       Source_public_key_path: 
        Get_Source_public_key: 0
            Network_Namespace: 
1 row in set (0.00 sec)

ERROR: 
No query specified

问题分析:

查看报错详情:

mysql> select * from performance_schema.replication_applier_status_by_worker\G;
*************************** 1. row ***************************
                                           CHANNEL_NAME: 
                                              WORKER_ID: 1
                                              THREAD_ID: NULL
                                          SERVICE_STATE: OFF
                                      LAST_ERROR_NUMBER: 1517
                                     LAST_ERROR_MESSAGE: Worker 1 failed executing transaction '019bd70c-9790-11f0-b2f1-08002706ac0a:50428' at source log mysql-bin.000001, end_log_pos 104693517; Error 'Duplicate partition name p_future' on query. Default database: 'cjc'. Query: 'ALTER TABLE t_target ADD PARTITION (PARTITION p_future VALUES LESS THAN (TO_DAYS('2027-01-01')))'
                                   LAST_ERROR_TIMESTAMP: 2026-06-20 10:32:41.317220
                               LAST_APPLIED_TRANSACTION: 
     LAST_APPLIED_TRANSACTION_ORIGINAL_COMMIT_TIMESTAMP: 0000-00-00 00:00:00.000000
    LAST_APPLIED_TRANSACTION_IMMEDIATE_COMMIT_TIMESTAMP: 0000-00-00 00:00:00.000000
         LAST_APPLIED_TRANSACTION_START_APPLY_TIMESTAMP: 0000-00-00 00:00:00.000000
           LAST_APPLIED_TRANSACTION_END_APPLY_TIMESTAMP: 0000-00-00 00:00:00.000000
                                   APPLYING_TRANSACTION: 019bd70c-9790-11f0-b2f1-08002706ac0a:50428
         APPLYING_TRANSACTION_ORIGINAL_COMMIT_TIMESTAMP: 2026-06-20 10:24:53.577729
        APPLYING_TRANSACTION_IMMEDIATE_COMMIT_TIMESTAMP: 2026-06-20 10:24:53.577729
             APPLYING_TRANSACTION_START_APPLY_TIMESTAMP: 2026-06-20 10:32:41.316349
                 LAST_APPLIED_TRANSACTION_RETRIES_COUNT: 0
   LAST_APPLIED_TRANSACTION_LAST_TRANSIENT_ERROR_NUMBER: 0
  LAST_APPLIED_TRANSACTION_LAST_TRANSIENT_ERROR_MESSAGE: 
LAST_APPLIED_TRANSACTION_LAST_TRANSIENT_ERROR_TIMESTAMP: 0000-00-00 00:00:00.000000
                     APPLYING_TRANSACTION_RETRIES_COUNT: 0
       APPLYING_TRANSACTION_LAST_TRANSIENT_ERROR_NUMBER: 0
      APPLYING_TRANSACTION_LAST_TRANSIENT_ERROR_MESSAGE: 
    APPLYING_TRANSACTION_LAST_TRANSIENT_ERROR_TIMESTAMP: 0000-00-00 00:00:00.000000

可以看到,Replica_SQL_Running 报错的主要原因是:同步添加分区的语句时报错,因为备库已经存在这个分区了。

LAST_ERROR_MESSAGE: 
Worker 1 failed executing transaction '019bd70c-9790-11f0-b2f1-08002706ac0a:50428' at source log mysql-bin.000001, end_log_pos 104693517; 
Error 'Duplicate partition name p_future' on query. 
Default database: 'cjc'. 
Query: 'ALTER TABLE t_target ADD PARTITION (PARTITION p_future VALUES LESS THAN (TO_DAYS('2027-01-01')))'

备份开始的位置:MASTER_LOG_FILE=‘mysql-bin.000001’, MASTER_LOG_POS=104693243

[mysql@cjc-db-02 bak]$ head -n 50 mysql_20260620.sql |grep MASTER_LOG_POS
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=104693243;

添加新分区的位置:MASTER_LOG_FILE=‘mysql-bin.000001’, MASTER_LOG_POS=104693322
解析主库 binlog,找到所有添加分区的 DDL

[mysql@cjc-db-01 binlog]$ mysqlbinlog --no-defaults --base64-output=DECODE-ROWS -v mysql-bin.000001 | grep -i -C5 "ADD PARTITION"
SET @@SESSION.GTID_NEXT= '019bd70c-9790-11f0-b2f1-08002706ac0a:50428'/*!*/;
# at 104693322
#260620 10:24:53 server id 244101  end_log_pos 104693517 CRC32 0xf096edc0 	Query	thread_id=21	exec_time=0	error_code=0	Xid = 158192
SET TIMESTAMP=1781922293/*!*/;
/*!80013 SET @@session.sql_require_primary_key=0*//*!*/;
ALTER TABLE t_target ADD PARTITION (PARTITION p_future VALUES LESS THAN (TO_DAYS('2027-01-01')))
/*!*/;
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

通过 general_log ,简单分析 mysqldump 过程:

mysql> set global general_log=ON;
Query OK, 0 rows affected (0.48 sec)

备份:

[mysql@cjc-db-01 ~]$ mysqldump -uroot -p --single-transaction --source_data=2 --hex-blob --extended-insert=TRUE --routines --triggers --events --set-gtid-purged=OFF  cjc t_target  >/home/mysql/bak/mysql_table_20260620.sql

查看 general_log:

[mysql@cjc-db-01 log]$ tail -10f general.log 
2026-06-20T10:46:02.008285+08:00	 2100 Connect	root@localhost on  using Socket
2026-06-20T10:46:02.008514+08:00	 2100 Query	/*!40100 SET @@SQL_MODE='' */
2026-06-20T10:46:02.008878+08:00	 2100 Query	/*!40103 SET TIME_ZONE='+00:00' */
2026-06-20T10:46:02.009282+08:00	 2100 Query	/*!80000 SET SESSION information_schema_stats_expiry=0 */
2026-06-20T10:46:02.009442+08:00	 2100 Query	SET SESSION NET_READ_TIMEOUT= 86400, SESSION NET_WRITE_TIMEOUT= 86400
2026-06-20T10:46:02.009809+08:00	 2100 Query	SHOW VARIABLES LIKE 'gtid_mode'
2026-06-20T10:46:02.012962+08:00	 2100 Query	FLUSH /*!40101 LOCAL */ TABLES
2026-06-20T10:46:02.041103+08:00	 2100 Query	FLUSH TABLES WITH READ LOCK
2026-06-20T10:46:02.041302+08:00	 2100 Query	SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
2026-06-20T10:46:02.041393+08:00	 2100 Query	START TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */
2026-06-20T10:46:02.041477+08:00	 2100 Query	SHOW MASTER STATUS
2026-06-20T10:46:02.041805+08:00	 2100 Query	UNLOCK TABLES
2026-06-20T10:46:02.042306+08:00	 2100 Query	SELECT LOGFILE_GROUP_NAME, FILE_NAME, TOTAL_EXTENTS, INITIAL_SIZE, ENGINE, EXTRA FROM INFORMATION_SCHEMA.FILES WHERE ENGINE = 'ndbcluster' AND FILE_TYPE = 'UNDO LOG' AND FILE_NAME IS NOT NULL AND LOGFILE_GROUP_NAME IS NOT NULL AND LOGFILE_GROUP_NAME IN (SELECT DISTINCT LOGFILE_GROUP_NAME FROM INFORMATION_SCHEMA.FILES WHERE ENGINE = 'ndbcluster' AND FILE_TYPE = 'DATAFILE' AND TABLESPACE_NAME IN (SELECT DISTINCT TABLESPACE_NAME FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA='cjc' AND TABLE_NAME IN ('t_target'))) GROUP BY LOGFILE_GROUP_NAME, FILE_NAME, ENGINE, TOTAL_EXTENTS, INITIAL_SIZE ORDER BY LOGFILE_GROUP_NAME
2026-06-20T10:46:02.048835+08:00	 2100 Query	SELECT DISTINCT TABLESPACE_NAME, FILE_NAME, LOGFILE_GROUP_NAME, EXTENT_SIZE, INITIAL_SIZE, ENGINE FROM INFORMATION_SCHEMA.FILES WHERE FILE_TYPE = 'DATAFILE' AND TABLESPACE_NAME IN (SELECT DISTINCT TABLESPACE_NAME FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA='cjc' AND TABLE_NAME IN ('t_target')) ORDER BY TABLESPACE_NAME, LOGFILE_GROUP_NAME
2026-06-20T10:46:02.052087+08:00	 2100 Query	SHOW VARIABLES LIKE 'ndbinfo\_version'
2026-06-20T10:46:02.055878+08:00	 2100 Init DB	cjc
2026-06-20T10:46:02.056047+08:00	 2100 Query	SHOW TABLES LIKE 't\_target'
2026-06-20T10:46:02.057994+08:00	 2100 Query	SAVEPOINT sp
2026-06-20T10:46:02.058222+08:00	 2100 Query	show table status like 't\_target'
2026-06-20T10:46:02.060845+08:00	 2100 Query	SET SQL_QUOTE_SHOW_CREATE=1
2026-06-20T10:46:02.060981+08:00	 2100 Query	SET SESSION character_set_results = 'binary'
2026-06-20T10:46:02.061077+08:00	 2100 Query	show create table `t_target`
2026-06-20T10:46:02.061976+08:00	 2100 Query	SET SESSION character_set_results = 'utf8mb4'
2026-06-20T10:46:02.062176+08:00	 2100 Query	show fields from `t_target`
2026-06-20T10:46:02.064463+08:00	 2100 Query	show fields from `t_target`
2026-06-20T10:46:02.066444+08:00	 2100 Query	SELECT /*!40001 SQL_NO_CACHE */ * FROM `t_target`
2026-06-20T10:46:02.066753+08:00	 2100 Query	SET SESSION character_set_results = 'binary'
2026-06-20T10:46:02.067634+08:00	 2100 Query	use `cjc`
2026-06-20T10:46:02.067844+08:00	 2100 Query	select @@collation_database
2026-06-20T10:46:02.068563+08:00	 2100 Query	SHOW TRIGGERS LIKE 't\_target'
2026-06-20T10:46:02.071092+08:00	 2100 Query	SET SESSION character_set_results = 'utf8mb4'
2026-06-20T10:46:02.071369+08:00	 2100 Query	SET SESSION character_set_results = 'binary'
2026-06-20T10:46:02.071572+08:00	 2100 Query	SELECT COLUMN_NAME,                       JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"')                FROM information_schema.COLUMN_STATISTICS                WHERE SCHEMA_NAME = 'cjc' AND TABLE_NAME = 't_target'
2026-06-20T10:46:02.072444+08:00	 2100 Query	SET SESSION character_set_results = 'utf8mb4'
2026-06-20T10:46:02.072609+08:00	 2100 Query	ROLLBACK TO SAVEPOINT sp
2026-06-20T10:46:02.072746+08:00	 2100 Query	RELEASE SAVEPOINT sp
2026-06-20T10:46:02.073187+08:00	 2100 Query	show events
2026-06-20T10:46:02.074975+08:00	 2100 Query	use `cjc`
2026-06-20T10:46:02.075192+08:00	 2100 Query	select @@collation_database
2026-06-20T10:46:02.075314+08:00	 2100 Query	SET SESSION character_set_results = 'binary'
2026-06-20T10:46:02.075848+08:00	 2100 Query	SHOW FUNCTION STATUS WHERE Db = 'cjc'
2026-06-20T10:46:02.077672+08:00	 2100 Query	SHOW PROCEDURE STATUS WHERE Db = 'cjc'
2026-06-20T10:46:02.078899+08:00	 2100 Query	SHOW CREATE PROCEDURE `fill_delay`
2026-06-20T10:46:02.079394+08:00	 2100 Query	SET SESSION character_set_results = 'utf8mb4'
2026-06-20T10:46:02.110324+08:00	 2100 Quit	

可以看到:
是先打开的一致性快照,确保了后面导出的数据都是同一时间点的数据

FLUSH /*!40101 LOCAL */ TABLES
FLUSH TABLES WITH READ LOCK
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
START TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */
SHOW MASTER STATUS
UNLOCK TABLES

但是表结构并不是备份开始时间点的,而是备份到这张表时,实时获取的。

show create table `t_target`

问题原因:

这是mysqldump 逻辑备份容易踩坑的一个问题。
场景还原:
T1: 执行 mysqldump,加全局读锁,记录位点 Pos=X (此时t_target表没有p_future这个分区)
T2: 释放读锁,开始逐表导出结构+数据
T3: 主库业务执行 ALTER TABLE t_target ADD PARTITION … (添加新分区)
T4: mysqldump 导出 t_target 表结构时,已经看到了新分区(因为 SHOW CREATE TABLE 是实时查的)
T5: 备份完成,备份文件里包含了新分区的定义和数据,但文件头记录的 CHANGE MASTER 位点还是 T1 时的 X
那么从库导入这个备份后,表里已经存在该分区,再按 X 位点启动复制,就会把 T3 时刻的 ADD PARTITION 再执行一遍,必然报错 1571。

官网也有这部分说明:

https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html#mysqldump-restrictions

While a --single-transaction dump is in process, to ensure a valid dump file (correct table contents and binary log coordinates), no other connection should use the following statements: ALTER TABLE, CREATE TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE. A consistent read is not isolated from those statements, so use of them on a table to be dumped can cause the SELECT that is performed by mysqldump to retrieve the table contents to obtain incorrect contents or fail.
在使用 --single-transaction 进行备份的过程中,为了确保备份文件有效(表内容与二进制日志位置正确),其它连接不能使用以下语句:ALTER TABLE、CREATE TABLE、DROP TABLE、RENAME TABLE、TRUNCATE TABLE。一致性读取无法与这些语句隔离。

解决方案:

APPLYING_TRANSACTION: 019bd70c-9790-11f0-b2f1-08002706ac0a:50428

因为备库已经有这个分区了,所以可以跳过这个事务:

STOP REPLICA;
SET GTID_NEXT = '019bd70c-9790-11f0-b2f1-08002706ac0a:50428';
BEGIN;
COMMIT;
SET GTID_NEXT = 'AUTOMATIC';
START REPLICA;
SHOW SLAVE STATUS\G;

或者,直接跳过当前同步错误的事务:

#SET GLOBAL sql_slave_skip_counter = 1;

同步恢复正常
主库:

mysql> insert into cjc.t_target values(6,'2026-06-20');
Query OK, 1 row affected (0.31 sec)

备库:

mysql> select * from cjc.t_target;
+----+------------+
| id | dt         |
+----+------------+
|  1 | 2021-06-01 |
|  2 | 2022-06-01 |
|  3 | 2023-06-01 |
|  4 | 2024-06-01 |
|  5 | 2025-06-01 |
|  6 | 2026-06-20 |
+----+------------+
6 rows in set (0.00 sec)
mysql> show replica status\G;
*************************** 1. row ***************************
             Replica_IO_State: Waiting for source to send event
                  Source_Host: 192.168.1.101
                  Source_User: repl
                  Source_Port: 3308
                Connect_Retry: 10
              Source_Log_File: mysql-bin.000001
          Read_Source_Log_Pos: 104693877
               Relay_Log_File: mysql-relay-bin.000003
                Relay_Log_Pos: 726
        Relay_Source_Log_File: mysql-bin.000001
           Replica_IO_Running: Yes
          Replica_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Source_Log_Pos: 104693877
              Relay_Log_Space: 1379
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Source_SSL_Allowed: No
           Source_SSL_CA_File: 
           Source_SSL_CA_Path: 
              Source_SSL_Cert: 
            Source_SSL_Cipher: 
               Source_SSL_Key: 
        Seconds_Behind_Source: 0
Source_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Source_Server_Id: 244101
                  Source_UUID: 019bd70c-9790-11f0-b2f1-08002706ac0a
             Source_Info_File: mysql.slave_master_info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
    Replica_SQL_Running_State: Replica has read all relay log; waiting for more updates
           Source_Retry_Count: 86400
                  Source_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Source_SSL_Crl: 
           Source_SSL_Crlpath: 
           Retrieved_Gtid_Set: 019bd70c-9790-11f0-b2f1-08002706ac0a:50428-50429
            Executed_Gtid_Set: 019bd70c-9790-11f0-b2f1-08002706ac0a:50428-50429,
0f83b1dc-9790-11f0-959d-080027106669:1-100
                Auto_Position: 0
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Source_TLS_Version: 
       Source_public_key_path: 
        Get_Source_public_key: 0
            Network_Namespace: 
1 row in set (0.00 sec)

ERROR: 
No query specified
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值