记录♪(^∇^*) 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-log
2、创建复制账户
进入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 = 2
2、配置连接
# 与主数据库创建的复制账户对应
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;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。