说明:

环境

mysql-master:172.16.200.43

mysql-slave:172.16.200.44

系统:centos7

版本:MySQL5.6.35

一、基于GTID复制环境的搭建前提

主从环境的搭建和5.5没有什么区别,唯一需要注意的是:开启GTID需要启用这三个参数:

#GTID

gtid_mode = on

enforce_gtid_consistency = 1

log_slave_updates = 1

gtid-mode用来设置是否开启GTID功能,如果要开启GTID功能,需要同时开启log-bin和log_slave_updates功能,另外还需要开启enforce_gtid_consistency功能。gtid_mode参数可以设置为on、off、upgrade_step_1、upgrade_step_2四种值,其中upgrade_step_1和upgrade_step_2是给将来mysql可能的新功能预留的,对当前的myql没有任何意义。同时,mysql建议在mysql_upgrade的时候,关闭gtid_mode功能和enforce_gtid_consistency功能,因为Mysql在upgrade期间可能会操作非事务的MyISAM存储引擎表,会引起报错。

二、配置步骤

1、43上面授权44从库的账号

MySQL [(none)]> grant replication slave on *.* to 'slave'@'172.16.200.44' identified by '000000';

MySQL [(none)]> flush privileges;

2、配置主从同步

MySQL [(none)]> stop slave;

MySQL [(none)]> CHANGE MASTER TO MASTER_HOST='172.16.200.43', MASTER_USER='slave', MASTER_PASSWORD='000000', MASTER_AUTO_POSITION=1;

MySQL [(none)]> start slave;

3、关闭防火墙

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

三、测试跳过一个事务

1、 43上面新建库test

2、43上面新建表info_area

CREATE TABLE `info_area` (

`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '地区ID',

`name` varchar(20) NOT NULL DEFAULT '' COMMENT '名称',

`rel_id` varchar(50) NOT NULL DEFAULT '' COMMENT '关系ID',

`pid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '父ID',

`level` int(11) NOT NULL DEFAULT '0' COMMENT '类别,1、省份 2、市 3、区 4、县',

PRIMARY KEY (`id`),

UNIQUE KEY `UNQ_RID` (`rel_id`) USING BTREE,

KEY `IDX_PID` (`rel_id`)

) ENGINE=InnoDB AUTO_INCREMENT=55185 DEFAULT CHARSET=utf8 COMMENT='地区表';

3、43插入3条语句,44完全同步

INSERT INTO `test`.`info_area` (`id`, `name`, `rel_id`, `pid`, `level`) VALUES ('10000', '北京', '10000', '10000', '1');

INSERT INTO `test`.`info_area` (`id`, `name`, `rel_id`, `pid`, `level`) VALUES ('10002', '三环以内', '100001000110002', '10001', '3');

INSERT INTO `test`.`info_area` (`id`, `name`, `rel_id`, `pid`, `level`) VALUES ('10003', '三环到四环之间', '100001000110003', '10001', '3');

4、 43删除id=10001

delete from info_area where id=10001;

5、44上面插入10001

INSERT INTO `test`.`info_area` (`id`, `name`, `rel_id`, `pid`, `level`) VALUES ('10001', '朝阳区', '1000010001', '10000', '2');

6、43上面插入10001

INSERT INTO `test`.`info_area` (`id`, `name`, `rel_id`, `pid`, `level`) VALUES ('10001', '朝阳区', '1000010001', '10000', '2');

由于主从复制,44也会同步该条数据,但是44上面刚刚已经插入过id=10001,所以此时报错

MySQL [(none)]> show slave status\G

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 172.16.200.43

Master_User: slave

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000007

Read_Master_Log_Pos: 83009452

Relay_Log_File: mysql-relay-bin.000002

Relay_Log_Pos: 83009382

Relay_Master_Log_File: mysql-bin.000007

Slave_IO_Running: Yes

Slave_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: 1062

Last_Error: Could not execute Write_rows event on table test.info_area; Duplicate entry '10001' for key 'PRIMARY', Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY; the event's master log mysql-bin.000007, end_log_pos 83009421

Retrieved_Gtid_Set: 0f869100-71d1-11e7-be5e-000c29f2e72e:1-14

Executed_Gtid_Set: 0f869100-71d1-11e7-be5e-000c29f2e72e:1-13,

22fd263e-71d1-11e7-be5e-000c29fffc35:1

Auto_Position: 1

7、解决gtid下1062错误

mysql> stop slave;

mysql> set GTID_NEXT='0f869100-71d1-11e7-be5e-000c29f2e72e:14';

mysql> begin;

mysql> commit;

mysql> set GTID_NEXT='AUTOMATIC';

mysql> start slave;

注:

传统方式

mysql> stop slave;

mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER = n;

mysql> start slave;

8、恢复正常

MySQL [(none)]> show slave status\G

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 172.16.200.43

Master_User: slave

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000007

Read_Master_Log_Pos: 83009452

Relay_Log_File: mysql-relay-bin.000003

Relay_Log_Pos: 448

Relay_Master_Log_File: mysql-bin.000007

Slave_IO_Running: Yes

Slave_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_Master_Log_Pos: 83009452

Relay_Log_Space: 83010163

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

Replicate_Ignore_Server_Ids:

Master_Server_Id: 1

Master_UUID: 0f869100-71d1-11e7-be5e-000c29f2e72e

Master_Info_File: /data/mysql/master.info

SQL_Delay: 0

SQL_Remaining_Delay: NULL

Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it

Master_Retry_Count: 86400

Master_Bind:

Last_IO_Error_Timestamp:

Last_SQL_Error_Timestamp:

Master_SSL_Crl:

Master_SSL_Crlpath:

Retrieved_Gtid_Set: 0f869100-71d1-11e7-be5e-000c29f2e72e:1-14

Executed_Gtid_Set: 0f869100-71d1-11e7-be5e-000c29f2e72e:1-14,

22fd263e-71d1-11e7-be5e-000c29fffc35:1

Auto_Position: 1

1 row in set (0.00 sec)

mysql1062错误 gtid_Mysql基于gtid的主从复制错误:1062相关推荐

  1. MySQL 5.7 基于 GTID 的主从复制实践

    MySQL 5.7 基于 GTID 的主从复制实践 Posted by Mike on 2017-07-03 运维之美 Home About Archives Tags 在 「MySQL 5.7多源复 ...

  2. Mysql的主从复制,基于position的主从复制(二进制日志文件位置的复制)和基于gtid的主从复制

    一.MySQL的下载流程 https://dev.mysql.com/downloads/mysql/ 二.实验环境 两台7版本的虚拟机+一台7版本的真机 主机信息 主机的功能 server1(172 ...

  3. mysql数据库基于gtid复制,mysql基于gtid复制的错误解决

    1.错误描述 Last_SQL_Errno: 1032 Last_SQL_Error: Coordinator stopped because there were error(s) in the w ...

  4. mysql 5.7 gtid 主从_MySQL 5.7基于GTID的主从复制实践

    GTID是基于mysql事务实现的,如果对mysql事务没啥概念的话,建议先看看 不在单独说明如何搭建mysql单点 请参考 然后再看这个gtid的 现在有这样一个需求: 主1mysql 是个单点的m ...

  5. mysql 5.6 gtid 主从_MySQL5.6基于GTID的主从复制

    一.GTID简介 MySQL 5.6 的新特性之一,是加入了全局事务 ID (GTID) 来强化数据库的主备一致性,故障恢复,以及容错能力. 什么是GTID? 官方文档:http://dev.mysq ...

  6. mysql主从复制、基于GTID的主从、半同步

    使用的mysql版本5.7.17 一.主从复制 原理: 主从复制一共有三个进程,从库生成两个线程,一个I/O线程,一个SQL线程: i/o线程去请求主库的binlog,并将得到的binlog日志写到r ...

  7. mysql 主从复制 和基于gtid的mysql主从复制

    主从复制 原理: mysql 无需借助第三方工具,而是其自带的同步复制功能,另外一点,mysql 的主从 复制并不是从硬盘给上文件直接同步,而是逻辑的 binlog 日志同步到本地的应用执行的过 程. ...

  8. 基于mysql的主从复制之Mycat简单配置和高可用

    what-mycat 1.Mycat就是MySQL Server,而Mycat后面连接的MySQL Server,就好象是MySQL的存储引擎,如InnoDB,MyISAM等. 因此,Mycat本身并 ...

  9. mysql主从切换gtid不一致_解决mysql使用GTID主从复制错误问题

    解决mysql使用GTID主从复制错误问题 做MySQL主从的话肯定会遇到很多同步上的问题, 大多数都是由于机器宕机,重启,或者是主键冲突等引起的从服务器停止工作, 这里专门收集类似问题并提供整理解决 ...

最新文章

  1. Android:JNI 与 NDK到底是什么
  2. 虚拟机使用镜像文件安装系统
  3. linux 进程 setuid,linux特殊权限位之setuid、setgid和sticky
  4. 《重返人类演化现场》阅读笔记
  5. P4123-[CQOI2016]不同的最小割【网络流,分治】
  6. JavaScript通俗易懂(一)-变量提升
  7. Storm入门(七)可靠性机制代码示例
  8. BZOJ1111 : [POI2007]四进制的天平Wag
  9. Laser Reflections solutions
  10. 让Eclipse起飞——这些插件不可不知
  11. 部分免费开放的电子图书馆
  12. 3D立体显示大屏幕拼接视频墙系统解决方案
  13. 向武 清华大学 计算机,哥哥保送弟弟全市第二 双胞胎同时上清华(组图)
  14. 2、乐趣国学——“君子慎独”
  15. 学渣的刷题之旅 leetcode刷题 2. 两数相加
  16. 新版teamtalk部署流程
  17. GIF动图制作网站!
  18. java.swing 飞机大战小游戏
  19. 【求职干货】HR喜欢看什么样的简历?
  20. BASH 和DOS 之间的基本区别

热门文章

  1. 腾讯云mysql如何设置远程访问_腾讯云主机 MySQL 远程访问配置方法
  2. 时代落在英伟达身上的是粒什么沙,国产GPU的机会又在哪?
  3. FPGA--ZCU106通过SFP+/SGMII模块传输数据-第二讲(全网唯一)
  4. 骑行318、 2016.7.15
  5. CSS背景图片background如何改变大小以及样式设置
  6. 机器学习项目:泰坦尼克号幸存者预测
  7. WPF中Tooltip使用技巧总结
  8. cms32L051 掉电深度睡眠的唤醒
  9. 电路设计之--钽电容选取
  10. python 实现简单画板_python 画板示例源码(可做签名/涂鸦)