千家信息网

CentOS 7 部署MySQL 5.7 主从复制(传统方式及GTID)

发表于:2024-09-26 作者:千家信息网编辑
千家信息网最后更新 2024年09月26日,记录♪(^∇^*) 1、二进制文件和位置的复制;2、基于全局事物标识符(GTID)两种方式的主从复制:(测试环境为CentOS 7.3)一、基于二进制日志文件(传统方式)(1)、工作原理:1、Mast
千家信息网最后更新 2024年09月26日CentOS 7 部署MySQL 5.7 主从复制(传统方式及GTID)

记录♪(^∇^*) 1、二进制文件和位置的复制;2、基于全局事物标识符(GTID)两种方式的主从复制:(测试环境为CentOS 7.3)

一、基于二进制日志文件(传统方式)

(1)、工作原理:

1、Master把数据库操作记录到Binary log,并发送给Slave的I/O线程;2、Slave的I/O线程把接收到Binary log存储到本地的Relay log;3、Slave的SQL线程从Relay log读取信息并在本地更新;

(2)、具体配置

主数据库(Master,192.168.100.51):

1、修改配置文件    # vi /etc/my.cnf    [mysqld]    #该id需设置为唯一    server-id = 1    #开启二进制日志    log-bin = bin-log2、创建复制账户    进入mysql    create user 'slave' @ '%' identified by 'slavepass';    grant replication slave on *.* to 'slave' @ '%';3、查看Master二进制文件名及位置    show master status;

从数据库(SLAVE,192.168.100.52):

1、修改配置文件:    # vi /etc/my.cnf    [mysqld]    #该id需设置为唯一    server-id = 22、配置连接    # 与主数据库创建的复制账户对应    mysql> CHANGE MASTER TO                             MASTER_HOST='192.168.100.51',                             MASTER_USER='slave',                             MASTER_PASSWORD='slavepass',                             MASTER_LOG_FILE='和主服务器file对应',                             MASTER_LOG_POS='和主服务器pos对应';    3、启动SLAVE        mysql> START SLAVE;    4、查看SLAVE状态        mysql> SHOW SLAVE STATUS\G;        查看Slave SQL线程和IO线程是否正常运行

(3)、测试

            在主数据库创建数据库,新增加表及数据,查看从库是否更新即可。

二、基于全局事务标识符复制(GTID)

(1)、原理

GTID是MYSQL 5.6引用的新特性,在数据库事务提交时会在binlog中产生一个对应的GTID,主从
复制时,从数据库会通过GTID来确定同步的位置,不用在去找File和Position。为什么说是全局,因为传统方式使用的pos在master和slave当中是不一样的。而对于GTID,对于相同的事务在master和slave当中是一致的。这样,当一个master宕机后,slave1提为master后,slave2不用在去找slave1的File和Position。

(2)、具体配置

主数据库(Master,192.168.100.51):

    1、修改配置文件        # vi /etc/my.cnf     [mysqld]     #该id需设置为唯一     gtid_mode = ON     server-id = 1     #开启二进制日志     log-bin = bin-log     enforce_gtid_consistency = ON 2、创建复制账户     mysql > grant replication slave on *.* to 'slave' @ '%' identified by 'slavepass';

从数据库(Master,192.168.100.52):

    1、修改配置文件     # vi /etc/my.cnf     [mysqld]     gtid_mode = ON     server_id = 2     enforce_gtid_consistency = ON    2、配置复制连接    mysql> CHANGE MASTER TO                             MASTER_HOST='192.168.100.51',                             MASTER_USER='slave',                             MASTER_PASSWORD='slavepass',                             MASTER_AUTO_POSITION = 1;    3、启动slave并查看        mysql > start slave;        mysql > show slave status\G;
0