mysql5.6.x GTID主从复制配置

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://koumm.blog.51cto.com/703525/1767786

本文环境:   
主库:CentOS6.7 x64 192.168.0.65 mysql-5.6.29    
备库:CentOS6.7 x64 192.168.0.66 mysql-5.6.29

一、配置Mysql5.6 GTID主从(本节配置适合主从都是空库的情况)

1. mysql主服务器配置

说明: 基于GTID的主从复制需要在配置文件中添加如下内容。

# vi /etc/my.cnf

[mysqld]   
binlog-format                = ROW    
log-bin                      = master-bin    
log-bin-index                = master-bin.index    
log-slave-updates            = true    
gtid-mode                    = on    
enforce-gtid-consistency     = true    
master-info-repository       = TABLE    
relay-log-info-repository    = TABLE    
sync-master-info             = 1    
slave-parallel-workers       = 2    
binlog-checksum              = CRC32    
master-verify-checksum       = 1    
slave-sql-verify-checksum    = 1    
binlog-rows-query-log_events = 1    
report-host                  = 192.168.1.120    
server-id                    = 1

重启数据库:    
# service mysqld restart

查看gtid信息:    
mysql> show global variables like '%GTID%';  
+---------------------------------+----------------------------------------+    
| Variable_name                   | Value                                  |    
+---------------------------------+----------------------------------------+    
| binlog_gtid_simple_recovery     | OFF                                    |    
| enforce_gtid_consistency        | ON                                     |    
| gtid_executed                   |                                        |    
| gtid_mode                       | ON                                     |    
| gtid_owned                      |                                        |    
| gtid_purged                     |                                        |    
| simplified_binlog_gtid_recovery | OFF                                    |    
+---------------------------------+----------------------------------------+

2. 主服务器配置同步复制帐号

grant replication slave on *.* to 'repl'@'%' identified by '123456';   
flush privileges;

3. mysql从服务器配置

说明: 默认只要server-id不相同即可。

# vi /etc/my.cnf

[mysqld]   
binlog-format                = ROW    
log-bin                      = mysql-bin    
relay-log                    = slave-relay-bin    
relay-log-index              = slave-relay-bin.index    
log-slave-updates            = true    
gtid-mode                    = on    
enforce-gtid-consistency     = true    
master-info-repository       = TABLE    
relay-log-info-repository    = TABLE    
sync-master-info             = 1    
slave-parallel-workers       = 2    
binlog-checksum              = CRC32    
master-verify-checksum       = 1    
slave-sql-verify-checksum    = 1    
binlog-rows-query-log_events = 1    
report-host                  = 192.168.1.121    
server-id                    = 11

重启数据库:    
# service mysqld restart

查看gtid状态:    
mysql> show global variables like '%GTID%';  
+---------------------------------+----------------------------------------+    
| Variable_name                   | Value                                  |    
+---------------------------------+----------------------------------------+    
| binlog_gtid_simple_recovery     | OFF                                    |    
| enforce_gtid_consistency        | ON                                     |    
| gtid_executed                   |                                        |    
| gtid_mode                       | ON                                     |    
| gtid_owned                      |                                        |    
| gtid_purged                     |                                        |    
| simplified_binlog_gtid_recovery | OFF                                    |    
+---------------------------------+----------------------------------------+    
7 rows in set (0.00 sec)

 

4. 连接主Mysql,配置主从

(1) 连接主数据库

mysql>   
CHANGE MASTER TO    
MASTER_HOST='192.168.0.65',    
MASTER_PORT=3306,    
MASTER_USER='repl',    
MASTER_PASSWORD='123456',    
MASTER_AUTO_POSITION=1;

(2) 启动从同步进程

mysql> start slave;   
mysql> show slave status\G;    
*************************** 1. row ***************************    
               Slave_IO_State: Waiting for master to send event    
                  Master_Host: 192.168.0.65    
                  Master_User: repl    
                  Master_Port: 3306    
                Connect_Retry: 60    
              Master_Log_File: master-bin.000007    
          Read_Master_Log_Pos: 290    
               Relay_Log_File: slave-relay-bin.000002    
                Relay_Log_Pos: 502    
        Relay_Master_Log_File: master-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: mysql.%    
                   Last_Errno: 0    
                   Last_Error:     
                 Skip_Counter: 0    
          Exec_Master_Log_Pos: 290    
              Relay_Log_Space: 706    
              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: c8bb22a1-024e-11e6-a1e8-000c29225fa0    
             Master_Info_File: mysql.slave_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:     
            Executed_Gtid_Set:     
                Auto_Position: 1    
1 row in set (0.00 sec)

ERROR:    
No query specified

mysql>

#查看如下两个参数为YES,说明从库运行正常。   
             Slave_IO_Running: Yes    
            Slave_SQL_Running: Yes

5. 验证同步情况

(1) 主数据库创建一个数据库

mysql> create database abc;   
Query OK, 1 row affected (0.02 sec)

mysql> show master status\G;   
*************************** 1. row ***************************    
             File: master-bin.000007    
         Position: 290    
     Binlog_Do_DB:     
Binlog_Ignore_DB:     
Executed_Gtid_Set: c8bb22a1-024e-11e6-a1e8-000c29225fa0:1    
1 row in set (0.00 sec)

ERROR:    
No query specified

mysql>

(2) 从数据库查看同步情况

mysql> show databases;   
+--------------------+    
| Database           |    
+--------------------+    
| information_schema |    
| abc                |    
| mydb               |    
| mysql              |    
| performance_schema |    
+--------------------+    
5 rows in set (0.01 sec)

mysql> show slave status\G;   
*************************** 1. row ***************************    
               Slave_IO_State: Waiting for master to send event    
                  Master_Host: 192.168.0.65    
                  Master_User: repl    
                  Master_Port: 3306    
                Connect_Retry: 60    
              Master_Log_File: master-bin.000007    
          Read_Master_Log_Pos: 290    
               Relay_Log_File: slave-relay-bin.000002    
                Relay_Log_Pos: 502    
        Relay_Master_Log_File: master-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: mysql.%    
                   Last_Errno: 0    
                   Last_Error:     
                 Skip_Counter: 0    
          Exec_Master_Log_Pos: 290    
              Relay_Log_Space: 706    
              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: c8bb22a1-024e-11e6-a1e8-000c29225fa0    
             Master_Info_File: mysql.slave_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: c8bb22a1-024e-11e6-a1e8-000c29225fa0:1    
            Executed_Gtid_Set: c8bb22a1-024e-11e6-a1e8-000c29225fa0:1    
                Auto_Position: 1    
1 row in set (0.00 sec)

ERROR:    
No query specified    
mysql>

二、 配置Mysql5.6 GTID主从 (主从异步模式转成GTID模式)方式二

mysql-5.6主从同步配置示例 http://koumm.blog.51cto.com/703525/1764093

原环境本身已经是异步主从同步模式。

1,从主库添加如上GTID相关配置文件,重启数据库后,主库锁表,备份数据库。

mysql> flush tables with read lock;

2,从库操重新配置从库,清除掉原来的主库配置信息, 或者采用导入数据库。

mysql> stop slave;   
mysql> reset slave;

3,在保证数据同步的情况下从库重新连接主库同步。

mysql>   
CHANGE MASTER TO    
MASTER_HOST='192.168.0.65',    
MASTER_PORT=3306,    
MASTER_USER='repl',    
MASTER_PASSWORD='123456',    
MASTER_AUTO_POSITION=1;

4,主库

mysql> unlock tables;

5,从库启动并测试同步情况

三、小结

可以在GTID的基础上配置半自动同步复制,可以查看相关文档,实际环境中需要对GTID相当了解后再用于生产环境。

本文出自 “koumm的linux技术博客” 博客,请务必保留此出处http://koumm.blog.51cto.com/703525/1767786

时间: 2024-10-02 06:59:08

mysql5.6.x GTID主从复制配置的相关文章

配置MySQL GTID 主从复制

GTID是一个基于原始mysql服务器生成的一个已经被成功执行的全局事务ID,它由服务器ID以及事务ID组合而成.这个全局事务ID不仅仅在原始服务器器上唯一,在所有存在主从关系 的mysql服务器上也是唯一的.正是因为这样一个特性使得mysql的主从复制变得更加简单,以及数据库一致性更可靠.本文主要描述了快速配置一个基于GTID的主从复制架构,供大家参考. 一.GTID的概念 1.全局事务标识:global transaction identifiers. 2.GTID是一个事务一一对应,并且全

MySQL5.6基于GTID的主从复制_Mysql

MySQL 5.6 的新特性之一,是加入了全局事务 ID (GTID) 来强化数据库的主备一致性,故障恢复,以及容错能力. 什么是GTID? 官方文档:http://dev.mysql.com/doc/refman/5.6/en/replication-gtids.html在这篇文档里,我们可以知道全局事务 ID 的官方定义是:GTID = source_id:transaction_id MySQL 5.6 中,每一个 GTID 代表一个数据库事务.在上面的定义中,source_id 表示执行

mysql基于RHCS、Gtid主从复制的高性能、LB、HA集群架构

mysql基于RHCS.Gtid主从复制的高性能.LB.HA集群架构 本文基于2个角度进行 1:mysql主从复制,读写分离部分 2:RHCS实现mysql-proxy.mysql-master.lvs高可用 架构图 可能会用到的yum源 http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm http://elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.r

解决mysql使用GTID主从复制错误问题

解决mysql使用GTID主从复制错误问题 做MySQL主从的话肯定会遇到很多同步上的问题, 大多数都是由于机器宕机,重启,或者是主键冲突等引起的从服务器停止工作, 这里专门收集类似问题并提供整理解决方案,仅供参考! 1.主从网络中断,或主服务器重启,或从服务器重启,从会根据配置文件中的时间(默认1分钟)去自动重连主服务器,直到网络和服务均可正常连接,连接正常后可自动继续同步之前文件,不需要任何人工干预! 2.当主从因为人为原因出现不同步的时候,可以用下面命令进行同步:  代码如下 复制代码 L

mysql5.6.16绿色版配置、运行

原文:mysql5.6.16绿色版配置.运行 1.从该地址http://dev.mysql.com/downloads/mysql/中选择windows的版本,选择下载. 2.将下载的压缩包解压. 3.将根目录下的my-default.ini复制重命名为my.ini. 4.打开my.ini文件,将下面的源码添加修改到my.ini中 [client] default-character-set=utf8 [mysqld] # 设置mysql服务器编码 character_set_server=ut

相当简单的MySQL主从复制配置教程

主从复制好处 它可以保证我们数据实时异步备份并且主服务器不受外部影响安全可靠 主从复制原理 将数据分布到多个系统上去,是通过将Mysql的某一台master主机的数据复制到其它(slave)主机上,并重新执行一遍来实现的: 复制过程中一个服务器充当master服务器,而一台或多台其它服务器充当slave服务器.master服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环. 这些日志可以记录发送到slave服务器的更新.当一个slaves服务器连接master服务器时,它通知ma

Windows下 MySQL-5.7.11 安装与配置

MySQL-5.7.11 安装与配置 1.下载mysql                                               > > >                      

mysql5.1免安装版配置

本文为Windows下配置mysql5.1免安装版 一.去官网下载下来压缩包. 二.将压缩包解压在某个位置 例如:E:/Java/mysql-5.1.73 三.配置my.ini文件 # Example MySQL config file for small systems.## This is for a system with little memory (<= 64M) where MySQL is only used# from time to time and it's importan

MySQL5.7的安装与配置详细操作步骤

一.MySQL的下载 1.登陆MySQL的官网下载适用于64位系统的ZIP压缩包(https://dev.mysql.com/downloads/mysql/) 二.解压安装包 将下载的ZIP压缩包解压到任意文件夹.(此处为: C:\mysql5.7) 三.修改配置文件 将解压文件夹目录下的my-default.ini 文件重命名为 my.ini  . 用文本编辑器打开并清空其中内容. 添加内容(参考互联网): [mysql] # 设置mysql客户端默认字符集 default-characte