本文仅适用于5.6以后版本。5.6版本引入的GTID(Global Transaction IDs)使得其复制功能的配置、监控及管理变得更加易于实现,且更加健壮。 一、简单主从模式配置步骤 1、配置主从节点的服务配置文件 1.1、配置master节点: [mysqld] binlog-format=ROW log-bin=master-bin 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 server-id=1 report-port=3306 port=3306 datadir=/mydata/data socket=/tmp/mysql.sock report-host=master.magedu.com 1.2、配置slave节点: [mysqld] binlog-format=ROW 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 server-id=11 report-port=3306 port=3306 log-bin=mysql-bin.log datadir=/mydata/data socket=/tmp/mysql.sock report-host=slave.magedu.com 2、创建复制用户 mysql> GRANT REPLICATION SLAVE ON *.* TO repluser@172.16.100.7 IDENTIFIED BY 'replpass'; 说明:172.16.100.7是从节点服务器;如果想一次性授权更多的节点,可以自行根据需要修改; 3、为备节点提供初始数据集 锁定主表,备份主节点上的数据,将其还原至从节点;如果没有启用GTID,在备份时需要在master上使用show master status命令查看二进制日志文件名称及事件位置,以便后面启动slave节点时使用。 4、启动从节点的复制线程 如果启用了GTID功能,则使用如下命令: mysql> CHANGE MASTER TO MASTER_HOST='master.magedu.com', MASTER_USER='repluser', MASTER_PASSWORD='replpass', MASTER_AUTO_POSITION=1; 没启用GTID,需要使用如下命令: slave> CHANGE MASTER TO MASTER_HOST='172.16.100.6', -> MASTER_USER='repluser', -> MASTER_PASSWORD='replpass', -> MASTER_LOG_FILE='master-bin.000003', -> MASTER_LOG_POS=1174; 二、半同步复制 1、分别在主从节点上安装相关的插件 master> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so'; slave> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so'; 2、启用半同步复制 在master上的配置文件中,添加 rpl_semi_sync_master_enabled=ON 在至少一个slave节点的配置文件中添加 rpl_semi_sync_slave_enabled=ON 而后重新启动mysql服务即可生效。 或者,也可以mysql服务上动态启动其相关功能: master> SET GLOBAL rpl_semi_sync_master_enabled = ON; slave> SET GLOBAL rpl_semi_sync_slave_enabled = ON; slave> STOP SLAVE IO_THREAD; START SLAVE IO_THREAD; 3、确认半同步功能已经启用 master> CREATE DATABASE magedudb; master> SHOW STATUS LIKE 'Rpl_semi_sync_master_yes_tx'; slave> SHOW DATABASES;有任何疑问请点击留言: 留言板