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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

本文环境:   
主库: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 51CTO博客,原文链接:http://blog.51cto.com/koumm/1767786,如需转载请自行联系原作者

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
29天前
|
存储 SQL 关系型数据库
创建并配置RDS实例
在阿里云上创建RDS实例涉及登录控制台、进入RDS管理页面、创建实例、选择数据库引擎和版本、配置实例规格与存储、设定网络与安全组、设置实例信息、确认订单并支付,最后初始化数据库。操作步骤可能因界面更新或数据库引擎不同略有差异。
18 1
|
30天前
|
SQL 存储 关系型数据库
MySQL的主从复制&主从同步
MySQL的主从复制&主从同步
28 0
|
1月前
|
关系型数据库 MySQL 开发工具
MySQL5.7主从配置(Docker)
MySQL5.7主从配置(Docker)
726 0
|
11天前
|
负载均衡 容灾 关系型数据库
mysql主从复制
mysql主从复制
28 1
|
28天前
|
SQL 存储 运维
MySQL高可用性:主从复制和集群
MySQL高可用性:主从复制和集群
34 0
|
10天前
|
SQL 缓存 关系型数据库
mysql性能优化-慢查询分析、优化索引和配置
mysql性能优化-慢查询分析、优化索引和配置
76 0
|
16天前
|
缓存 关系型数据库 MySQL
MySQL查询优化:提速查询效率的13大秘籍(合理使用索引合并、优化配置参数、使用分区优化性能、避免不必要的排序和group by操作)(下)
MySQL查询优化:提速查询效率的13大秘籍(合理使用索引合并、优化配置参数、使用分区优化性能、避免不必要的排序和group by操作)(下)
|
10天前
|
SQL 关系型数据库 MySQL
mysql主从复制
mysql主从复制
|
25天前
Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
14 1
|
28天前
|
弹性计算 关系型数据库 MySQL
rds子网配置
在阿里云中配置RDS子网涉及五个关键步骤:1) 创建或选择VPC作为私有网络环境;2) 在VPC内创建子网并确保IP地址不重叠;3) 关联路由表和安全组以控制流量及访问权限;4) 创建RDS实例时指定VPC和子网;5) 确保ECS实例与RDS在同一VPC或配置相应跨VPC访问,并调整安全组规则。这样可保障RDS与其他资源的通信及网络性能。
17 6