程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> Mariadb數據庫 >> MariaDB配置雙主復制方案

MariaDB配置雙主復制方案

編輯:Mariadb數據庫

本文環境

Debian 8

MariaDB 10.1.21

配置文件 1

修改服務器 1 上 mysql 配置文件 /etc/mysql/my.cnf

有些配置默認就存在的,如果你有潔癖,請先搜索,再添加配置項。

[mysqld]
server-id        = 1 
log_bin         = /var/log/mysql/mariadb-bin 
log_bin_index      = /var/log/mysql/mariadb-bin.index 
binlog-do-db        = tudou1 #需要同步的數據庫,這裡同步tudou1和tudou2兩個數據庫 
binlog-do-db        = tudou2 
binlog-ignore-db     = mysql #忽略同步的數據庫 
log_slave_updates               #把從庫的寫操作記錄到binlog中 (缺少之後,雙主創建失敗) 
expire_logs_days  = 365         #日志文件過期天數,默認是 0,表示不過期 
auto_increment_increment= 2       #設定為主服務器的數量,防止auto_increment字段重復 
auto_increment_offset  = 1       #自增長字段的初始值,在多台master環境下,不會出現自增長ID重復

配置文件 2

[mysqld]
[mysqld]
server-id        = 2 
log_bin         = /var/log/mysql/mariadb-bin 
log_bin_index      = /var/log/mysql/mariadb-bin.index 
binlog-do-db      = tudou1 #需要同步的數據庫,這裡同步tudou1和tudou2兩個數據庫 
binlog-do-db      = tudou2 
binlog-ignore-db     = mysql #忽略同步的數據庫 
log_slave_updates               #把從庫的寫操作記錄到binlog中 (缺少之後,雙主創建失敗) 
expire_logs_days  = 365         #日志文件過期天數,默認是 0,表示不過期 
auto_increment_increment= 2       #設定為主服務器的數量,防止auto_increment字段重復 
auto_increment_offset  = 2       #自增長字段的初始值,在多台master環境下,不會出現自增長ID重復

注意:

log slave updates 表示把從庫的寫操作記錄到binlog中,缺少之後,雙主創建失敗。雙主同步時該項必須有

binlog-do-db 需要同步的數據庫,可寫多個

binlog-ignore-db 表示忽略同步的數據庫

創建同步賬戶

// 服務器 1

GRANT REPLICATION SLAVE ON *.* TO 'repuser'@'server-2' IDENTIFIED BY 'repuser'; 
FLUSH PRIVILEGES;

// 服務器 2
GRANT REPLICATION SLAVE ON *.* TO 'repuser'@'server-1' IDENTIFIED BY 'repuser'; 
FLUSH PRIVILEGES;

可以順便在另一台服務器測試能不能登錄,如果不能,把 bind-address 那行注釋掉即可。

$ mysql -urepuser -prepuser -hserver-1

查看 master 狀態

服務器 1 中

MariaDB [mysql]> show master status; 
+--------------------+----------+--------------+------------------+
| File        | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+--------------------+----------+--------------+------------------+
| mariadb-bin.000514 |   639 | xxxxxxxx   | mysql      |
+--------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

服務器 2 中

MariaDB [mysql]> show master status; 
+--------------------+----------+--------------+------------------+
| File        | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+--------------------+----------+--------------+------------------+
| mariadb-bin.000006 |   1057 | xxxxxxxx   | mysql      |
+--------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

設置同步

// 服務器 2

MariaDB [mysql]> CHANGE MASTER TO MASTER_HOST='server-1',MASTER_PORT=3306,MASTER_USER='repuser',MASTER_PASSWORD='repuser',MASTER_LOG_FILE='mariadb-bin.000514',MASTER_LOG_POS=639;

MariaDB [mysql]> START SLAVE;

// 服務器 1

MariaDB [mysql]> CHANGE MASTER TO MASTER_HOST='server-2',MASTER_PORT=3306,MASTER_USER='repuser',MASTER_PASSWORD='repuser',MASTER_LOG_FILE='mariadb-bin.000006',MASTER_LOG_POS=1057;

MariaDB [mysql]> START SLAVE;

// 完畢之後,分別執行

MariaDB [mysql]> SHOW SLAVE STATUS\G

如出現以下兩項,則說明配置成功!

Slave_IO_Running: Yes
      Slave_SQL_Running: Yes


雙主同步測試

在服務器 1 數據庫中創建一個表,看看服務器 2 會不會出現,按照上面教程,如果沒問題的話,就是可以同步的。

  1. 上一頁:
  2. No
Copyright © 程式師世界 All Rights Reserved