1. 程式人生 > >CentOS 7 部署MySQL 5.7(主從復制,傳統方式及GTID)

CentOS 7 部署MySQL 5.7(主從復制,傳統方式及GTID)

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)