天天看點

MariaDB主從配置/容災配置

準備

主資料庫伺服器:192.168.5.14

從資料庫伺服器:192.168.5.18,192.158.5.19,...(這裡可以是多台,為了友善示範我就隻選一台)

所有資料庫伺服器均安裝了統一版本的MariaDB,并且主資料庫到每台從資料庫的網絡是通的,防火牆也開放了3306端口(如果不會開放防火牆就先把防火牆關了,後期把規則加回去即可)

主資料庫伺服器與從資料庫伺服器的MariaDB資料庫版本最好一緻,其實不一緻的情況下之前也測試過是可以成功的(小版本),但為了友善整個項目架構的版本管理最好是一緻的

開始

修改主資料庫伺服器的資料庫配置檔案

vi /etc/my.cnf
           

加入下列兩條規則

server-id=1 #設定一個服務id,一般來說用1代表主,用2、3、4...代表從
log-bin=master-bin #開啟二進制檔案功能
           
MariaDB主從配置/容災配置

儲存,退出。然後進入主資料庫伺服器的mysql指令行,建立slave使用者(這一步用資料庫管理者賬戶登入就行,我這邊用的是root)

MariaDB主從配置/容災配置

給從伺服器192.168.5.18授權一個使用者slave1,密碼設定成123456

grant replication slave on *.* to 'slave1'@'192.168.5.18' identified by '123456';
           
MariaDB主從配置/容災配置

設定完成後重新開機主資料庫伺服器上的MariaDB

systemctl restart mariadb
           

進入主資料庫伺服器mysql指令行,執行

show variables like "%log_bin";

檢查二進制日志功能是否打開

MariaDB主從配置/容災配置

再執行

show master status;

檢視主資料庫伺服器狀态

MariaDB主從配置/容災配置

記錄好File和Position這兩個值,每個人應該都是不同的。這兩個值待會在從資料庫伺服器上配置時一定會用到,并且每次重新開機都會改變,是以這兩個值不是一成不變的

主資料庫伺服器這邊的配置就已經完成了,接下來就要切換到從資料庫伺服器操作

修改從資料庫伺服器的mysql配置檔案

vi /etc/my.cnf
           

加入一條id,由于這裡是從資料庫伺服器,是以id給2,如果還有另一台從資料庫伺服器就用3,反正就是id不能重複,必須是唯一的

server-id=2 #設定一個服務id,一般來說用1代表主,用2、3、4...代表從
           
MariaDB主從配置/容災配置

儲存退出,重新開機MariaDB

systemctl restart mariadb
           

進入從資料庫伺服器mysql指令行,配置主資料庫位址、使用者名、密碼、二進制檔案及pos點

change master to
master_host='192.168.5.14',
master_user='slave1',
master_password='123456',
master_log_file='master-bin.000002', #這裡就是上面說到要記錄的
master_log_pos=345;
           
MariaDB主從配置/容災配置

執行成功後,執行

slave start;

啟動slave程序

MariaDB主從配置/容災配置

執行

show slave status\G

檢視從伺服器狀态

MariaDB主從配置/容災配置

這兩個值如果是Yes說明主從配置成功,如果是connecting就說明有問題,需要仔細檢查

現在可以嘗試一下主從是否有效:

在主資料庫伺服器上建一個名為hello的庫

create database hello charset utf8;
           
MariaDB主從配置/容災配置
MariaDB主從配置/容災配置

可以看到主資料庫伺服器上是有hello這個庫的,現在我們切換到從資料庫伺服器show一下所有的database

MariaDB主從配置/容災配置

可以看到從資料庫伺服器上也同步了一個hello庫

繼續閱讀