请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

GTID复制下的Slave_SQL_Running: No

老师您好!
我用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会不会很慢?

谢谢老师!

正在回答 回答被采纳积分+3

插入代码

1回答

sqlercn 2019-10-22 14:51:36

因该是你的数据同步方式不对,在做主从同步时需要使用 mysqldump命令并增加--master-data参数记录下当前主库的gtid,然后再在从库上进行恢复才成。具体的过程你可以参考一下课程的内容。

0 回复 有任何疑惑可以回复我~
  • 提问者 qq_慕UI3019677 #1
    老师,我一开始就是用了--master-data参数,导致了dump文件里有gtid信息,刚才我根据提示的消息,把--master-data删除后从新导出dump,此时dump文件中不存在GTID信息,然后把dump导入到从库中,再start slave,成功。
    回复 有任何疑惑可以回复我~ 2019-10-22 15:08:20
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号