GTID复制下的Slave_SQL_Running: No
来源:5-6 基于GTID的复制

qq_慕UI3019677
2019-10-22
老师您好!
我用GTID作主从复制,主机和从机1都能正常运行,但是从机2的Slave_SQL_Running就起不来。
从机2的复制步骤:
1、my.cnf配置:
server_id=3
log-bin=/usr/local/mysql/log/mysql-bin.log
relay_log=/usr/local/mysql/log/server3_relay_log
gtid_mode=on
enforce-gtid-consistency
log-slave-updates=on
read_only=on
master_info_repository=TABLE
relay_log_info_repository=TABLE
2、用navicat复制主机的数据库,还原到从机2。
3、192.168.233.11是主机
change master to master_host=‘192.168.233.11’,
master_user=‘replication1’,
master_password=‘12341234’,
master_auto_position=1;
4、start slave;
show slave status G后,显示:
Last_Errno: 1062
Last_Error: Could not execute Write_rows event on table mytest1.test1; Duplicate e
ntry ‘1’ for key ‘PRIMARY’, Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY; the event’s master log mysql-bin.000006, end_log_pos 397
主键冲突了,这是为什么啊?
(最开始做主库和从库1的主从复制时,主库中是没有数据的)
最后我把从库2中的数据删除,然后重启从库2,GTID复制生效了,也就是说,当主库中有数据时,如果要做GTID主从复制,只要把表结构导进从库就行了么?但是当数据库数据量足够大时,启动slave会不会很慢?
谢谢老师!
1回答
-
sqlercn
2019-10-22
因该是你的数据同步方式不对,在做主从同步时需要使用 mysqldump命令并增加--master-data参数记录下当前主库的gtid,然后再在从库上进行恢复才成。具体的过程你可以参考一下课程的内容。
012019-10-22
相似问题