MariaDB(Mysql) Replication 同步設定-Master-Slave主從同步(1)

MySQL & MariaDB

當mariadb (master)主資料庫的發生異動的時候,變動會同步到(slave)從資料庫。
今天要實作的是主資料庫可寫入刪除,而從資料庫止可查詢(唯讀狀態)的Master-Slave主從同步模式。
首先,主從服務器的時間要同步,資料庫版本最好是一致的,以免造成函數處理、日誌讀取、解析等發生異常,第二,防火牆相關設定要注意例如 iptables, firewalld, selinux ...等。

1.先設置主資料庫 (在主資料庫所在server中)
在/etc/my.cnf 或是在 /etc/my.cnf.d/ 中新增 replication.cnf

[mysqld]
sync_binlog = 1
skip_name_resolve = ON
server-id = 1
log-bin = master-log

重新啟動 Restart MariaDB (Centos: systemctl restart mariadb) 

mysql -u root -p (輸入password) (執行下面指令,新增一個使用者用來將資料複製到salve server)
CREATE USER 'repliuser'@'%' IDENTIFIED BY '<password>';
GRANT REPLICATION SLAVE ON *.* TO 'repliuser'@'%';
FLUSH PRIVILEGES;

show master status\G;
MariaDB [mysql]> SHOW MASTER STATUS\G
*************************** 1. row ***************************
File: master-log.000001
Position: 343
Binlog_Do_DB:
Binlog_Ignore_DB:
1 row in set (0.000 sec)
請注意  File: mater-log.000001 與 Position:343 ,這兩個資料slave設定時會使用到。

2.設定從資料庫 (在從資料庫所在server中)
在/etc/my.cnf 或是在 /etc/my.cnf.d/ 中新增 replication.cnf
[mysqld]
skip_name_resolve = ON
server-id = 2
relay-log = slave-log
read_only = 1 

重新啟動 Restart MariaDB (Centos: systemctl restart mariadb)
mysql -u root -p (輸入password) (執行下面指令,連線到master server)
Stop slave;
CHANGE MASTER TO
MASTER_HOST='mater-server-ip',
MASTER_USER='repliuser',
MASTER_PASSWORD='<password>',
MASTER_LOG_FILE='master-log.000001',
MASTER_LOG_POS=343;
start slave;

以上,下一篇來實作 主主同步 master to master replication 吧!先看個流程圖吧!

資料來源:
MariaDBS官方網站 https://mariadb.org/database-master-slave-replication-in-the-cloud/

http://msutic.blogspot.com/2015/02/mariadbmysql-master-master-replication.html

One Reply to “MariaDB(Mysql) Replication 同步設定-Master-Slave主從同步(1)”

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *