热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MySQL5.6.xGTID主从复制详细配置指南

本文详细介绍了在CentOS6.7x64环境下配置MySQL5.6.29的GTID主从复制方法。主库IP为192.168.0.65,备库IP为192.168.0.66。通过逐步指导,帮助读者顺利实现高可用性和数据一致性。

本文环境:

主库: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模式)方式二

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

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相当了解后再用于生产环境。



推荐阅读
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • ImmutableX Poised to Pioneer Web3 Gaming Revolution
    ImmutableX is set to spearhead the evolution of Web3 gaming, with its innovative technologies and strategic partnerships driving significant advancements in the industry. ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • MQTT技术周报:硬件连接与协议解析
    本周开发笔记重点介绍了在新项目中使用MQTT协议进行硬件连接的技术细节,涵盖其特性、原理及实现步骤。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
author-avatar
viggieg-may_789
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有