MySQL 8 Replication 主從設定指南

MySQL 很早就提供藉由複製作業記錄到異機伺服器,達到資料庫備援的功能。而隨著版本的更替,對於資訊安全的要求也日益嚴謹,目前 MySQL 8 的版本已經強制要求使用 SSL 加密,也在安裝時自動建立所需要的憑證檔案

另外,由於 Replication 複製Master(主)伺服器的作業記錄到Slave(從)伺服器。因此,原則上Slave(從)伺服器或是被用來做為備援的個別資料庫,需要設定成唯讀(只有Replication可以寫入)。實際建置上,也需要評估是否真的有需要建立 Replication 機制,還是僅需要建立「能手動復原災難的非即時備援機」即可。個人在處理資料異動頻度不高且需備份的資料不只資料庫的 WordPress,還是採用外掛程式UpdraftPlus免費版搭配VSFTP來每日備份整個Wordpress 資料到備援機。

Slave 伺服器需要將 Master 伺服器的根憑證及以其產生的client 憑證,複製過來並設定為SSL 加密的憑證。 MySQL 8 在 Ubuntu 22.04 安裝時自動產生的憑證位置 #/var/lib/mysql/client-key.pem、/var/lib/mysql/ca.pem、/var/lib/mysql/client-cert.pem。

以下為設定 REPLICATION 時會用到的指令及參考設定:

啟動 SLAVE 同步
mysql> START SLAVE;

停止 SLAVE 同步
mysql> STOP SLAVE;

檢查 SLAVE 狀態
mysql> SHOW SLAVE STATUS \G;


MASTER
bind-address    = 0.0.0.0
server-id    = {custom id for master}
log_bin        = /var/log/mysql/mysql-bin.log

mysql> GRANT REPLICATION SLAVE ON *.* TO ‘account’@’%’;

SLAVE
bind-address    = 0.0.0.0
server-id    = {custom id for slave}
log_bin        = /var/log/mysql/mysql-bin.log

mysql> CHANGE MASTER TO MASTER_HOST=’master_ip’,
              MASTER_USER=’account’,
              MASTER_PASSWORD=’password’;    

留言

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.