【Mysql】雙主雙從同步配置


  本例介紹Mysql雙主雙從同步配置,一主一從參考:【Mysql】主從同步配置

雙主雙從架構

  

搭建步驟

  1、環境准備,本例准備了4台服務器

    mysql版本:5.8

    系統:CentOS 7.4

    master1服務器:  172.17.0.2

    slave1服務器:  172.17.0.3

    master2服務器:  172.17.0.4

    slave2服務器:     172.17.0.5

  2、在4台服務器上分支安裝mysql實例,參考:【Linux】CentOS 7.4 安裝 MySQL 8.0.12 解壓版

  3、修改4個mysql的配置

    master1的配置(/etc/my.cnf)如下:

 1 #主服務器唯一ID
 2 server-id=1
 3 #啟用二進制日志
 4 log-bin=mysql-bin
 5 # 設置不要復制的數據庫(可設置多個)
 6 binlog-ignore-db=mysql
 7 binlog-ignore-db=information_schema
 8 #設置需要復制的數據庫
 9 binlog-do-db=test_slave
10 #設置logbin格式
11 binlog_format=STATEMENT
12 # 在作為從數據庫的時候,有寫入操作也要更新二進制日志文件
13 log-slave-updates
14 #表示自增長字段每次遞增的量,指自增字段的起始值,其默認值是1,取值范圍是1 .. 65535
15 auto-increment-increment=2
16 # 表示自增長字段從哪個數開始,指字段一次遞增多少,他的取值范圍是1 .. 65535
17 auto-increment-offset=1

    slave1的配置(/etc/my.cnf)如下:

1 #從服務器唯一ID
2 server-id=2
3 #啟用中繼日志
4 relay-log=mysql-relay

    master2的配置(/etc/my.cnf)如下:

 1 #主服務器唯一ID
 2 server-id=3
 3 #啟用二進制日志
 4 log-bin=mysql-bin
 5 # 設置不要復制的數據庫(可設置多個)
 6 binlog-ignore-db=mysql
 7 binlog-ignore-db=information_schema
 8 #設置需要復制的數據庫
 9 binlog-do-db=test_slave
10 #設置logbin格式
11 binlog_format=STATEMENT
12 # 在作為從數據庫的時候,有寫入操作也要更新二進制日志文件
13 log-slave-updates
14 #表示自增長字段每次遞增的量,指自增字段的起始值,其默認值是1,取值范圍是1 .. 65535
15 auto-increment-increment=2
16 # 表示自增長字段從哪個數開始,指字段一次遞增多少,他的取值范圍是1 .. 65535
17 auto-increment-offset=2

    slave2的配置(/etc/my.cnf)如下:

1 #從服務器唯一ID
2 server-id=3
3 #啟用中繼日志
4 relay-log=mysql-relay

  4、重啟4個mysql實例服務

  5、查詢主節點信息

    登錄master1的mysql,執行以下命令:show master status;

    

    登錄master2的mysql,執行以下命令:show master status;

    

  6、配置雙從機

    1)登錄slave1的mysql,執行以下命令

1 CHANGE MASTER TO
2 MASTER_HOST = '172.17.0.2',
3 MASTER_USER = 'root',
4 MASTER_PASSWORD = '123456',
5 MASTER_PORT = 3306,
6 MASTER_LOG_FILE='mysql-bin.000003',
7 MASTER_LOG_POS=615;

    登錄slave2的mysql,執行以下命令

1 CHANGE MASTER TO
2 MASTER_HOST = '172.17.0.4',
3 MASTER_USER = 'root',
4 MASTER_PASSWORD = '123456',
5 MASTER_PORT = 3306,
6 MASTER_LOG_FILE='mysql-bin.000003',
7 MASTER_LOG_POS=787;

    2)分別啟動2個節點的從服務

      命令:start slave;

    3)查看從服務狀態

      命令:show slave status\G;

      如下:

      slave1

      

      slave2

      

  7、兩個主機互相復制

    1)登錄master1的mysql,執行以下命令

1 CHANGE MASTER TO
2 MASTER_HOST = '172.17.0.4',
3 MASTER_USER = 'root',
4 MASTER_PASSWORD = '123456',
5 MASTER_PORT = 3306,
6 MASTER_LOG_FILE='mysql-bin.000003',
7 MASTER_LOG_POS=787;

    登錄master2的mysql,執行以下命令

1 CHANGE MASTER TO
2 MASTER_HOST = '172.17.0.2',
3 MASTER_USER = 'root',
4 MASTER_PASSWORD = '123456',
5 MASTER_PORT = 3306,
6 MASTER_LOG_FILE='mysql-bin.000003',
7 MASTER_LOG_POS=615;

    2)分別啟動2個主節點的從服務

      命令:start slave;

驗證雙主雙從

  1、登錄master1,創建數據庫 test_slave

1 CREATE DATABASE test_slave;

  2、創建表

1 CREATE TABLE `test_tbl` (
2   `id` int(10) unsigned NOT NULL AUTO_INCREMENT, 3 `title` varchar(100) NOT NULL, 4 `update_date` date DEFAULT NULL, 5 PRIMARY KEY (`id`) 6 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

  3、插入數據

1 INSERT INTO `test_slave`.`test_tbl`(`id`, `title`, `update_date`) VALUES (1, '白色', '2020-07-10');

  4、更新數據

1 UPDATE `test_slave`.`test_tbl` SET `title` = '黑色', `update_date` = '2020-07-10' WHERE `id` = 1;

  查看master1、master2 和 slave1、slave2 節點數據是否相同

 

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM