CentOS 7 部署MySQL 5.7(主從復制,傳統方式及GTID)
阿新 • • 發佈:2019-03-15
status rep word cat 特性 -i 數據庫事務 事務 mys 記錄?(^?^*) 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;
CentOS 7 部署MySQL 5.7(主從復制,傳統方式及GTID)