Ubuntu 16.04 MariaDB Master Slaver 設定

Master (192.168.50.1)

編輯my.cnf

vi /etc/mysql/my.cnf

接著在[mysqld]底下加上這些

#Master要設置為1,slave為2
server-id = 1
#代表要讓MariaDB產生日誌
log-bin
#輸入要備份的資料庫名稱
binlog-do-db=dbname
#跳過錯誤,繼續執行複製
slave-skip-errors=all

存檔並重新啟動MariaDB

登入MariaDB

mysql -u root -p

使用以下指令查看server_id是否正確

SHOW VARIABLES LIKE 'server_id';

建立一個帳號,並賦予權限(Slave登入用的,請輸入IP位址,Domain不適用)

GRANT replication slave ON *.* TO 'dbname'@'192.168.50.2' IDENTIFIED BY 'password' ;

確認Master是否正常,並記下LOG檔名的position等下會用到

show master status;

 

Slave (192.168.50.2)

編輯my.cnf

vi /etc/mysql/my.cnf

接著在[mysqld]底下加上這些

#Master要設置為1,slave為2
server-id = 2
#代表要讓MariaDB產生日誌
log-bin
#輸入要備份的資料庫名稱
binlog-do-db=dbname
#跳過錯誤,繼續執行複製
slave-skip-errors=all

建立一個帳號,並賦予權限(Master使用,請輸入IP位址,Domain不適用)

GRANT replication slave ON *.* TO  'dbname'@'192.168.50.1' IDENTIFIED BY 'password' ;

存檔並重新啟動MariaDB

登入MariaDB

mysql -u root -p

先停止slave,再輸入change master 的指令,最後重新啟動 slave

Stop slave;

CHANGE MASTER TO

MASTER_HOST='192.168.50.1',

MASTER_USER='dbname',

MASTER_PASSWORD='password',

MASTER_LOG_FILE='mariadb-bin.000010',    (剛剛show master status; 出現的資料)

MASTER_LOG_POS=555; (此例為555,輸入555即可)

使用以下指令檢查連線是否成功

show slave status\G;

若訊息內出現下列兩行,即成功連線

Slave_IO_Running: Yes;
Slave_SQL_Running: Yes;