centos7下mariadb10.2基於logbin的主從配置手記

萬能的互聯網上相關描述總是很“詳細”,滿滿的都是code,我這一次還算順利,沒有太多內容。

說起來慚愧,因爲我個把月前被病毒勒索過,磁盤上所有文件都被加密,讓我確定了必須同時使用多種方式保護數據的想法。

保護mariadb的數據,除了定時備份外,還有個必不可少的辦法就是在異地機房配個從庫,既備份了數據庫,還可以分擔讀壓力。

1、兩臺安裝好mariadb10.2的centos7,其中

主數據庫10.45.98.135,有數據

從數據庫10.45.3.179,無數據

先把主服務器中的庫導出,並導入進從數據庫

2、修改配置

主數據庫配置:

[mysqld]
#其他不相關配置
log-bin=mysql-bin
binlog_format=mixed
server-id = 1
binlog-do-db=要同步的數據庫
binlog-ignore-db=mysql
從數據庫配置:

[mysqld]
#其他不相關配置
binlog_format=mixed
server-id = 2
read-only=on
relay-log=relay-bin
replicate-do-db=要同步的數據庫
replicate-ignore-db=mysql
配置完後兩個mariadb都重啓一下,systemctl restart mysql

查看主數據庫狀態:show master status;記住file和position,下一步要用。

(替換到MASTER_LOG_FILE和MASTER_LOG_POS處,我的是mysql-bin.000003和342)

3、在從數據庫上把主數據庫的信息替換到以下sql中執行。

CHANGE MASTER TO   
    MASTER_HOST='10.45.98.135',
    MASTER_USER='root',
    MASTER_PASSWORD='password',
    MASTER_LOG_FILE='mysql-bin.000003',
    MASTER_LOG_POS=342;
    
START SLAVE;

SHOW SLAVE STATUS;
從show slave status的結果中看到,如果 Slave_SQL_Running 的值爲Yes,Seconds_Bebind_Master的值爲0,表示正常,此時可以在主庫上做寫操作,默認Connect_Retry=60秒內可以在從庫上看到變化。

以上,我兩臺mariadb都分別是在docker中,centos鏡像是docker.io默認的CentOS Linux release 7.4.1708 (Core),mariadb是MySQL Server: 10.2.12-MariaDB-log。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章