測試環境:RedHat 9.0 + MySQL 3.23.57,資料近乎即時同步。以下為完整設定步驟:
| 角色 | IP | 主機名 |
|---|---|---|
| Master | 192.168.1.2 | A 伺服器 |
| Slave | 192.168.1.3 | B 伺服器 |
GRANT FILE ON *.* TO backup@192.168.1.3 IDENTIFIED BY '1234';
mysqladmin -u root -p shutdowntar -cvf /tmp/mysql.tar /var/lib/mysql(需停機狀態)/etc/my.cnf [mysqld] 區段:
log-bin
server-id=1
sql-bin-update-same
binlog-do-db=vbb
/var/lib/mysql 將產生 .index 二進位記錄索引檔/etc/my.cnf [mysqld] 區段:
master-host=192.168.1.2
master-user=backup
master-password=1234
master-port=3306
server-id=2
master-connect-retry=60
replicate-do-db=vbb
log-slave-updates
mysql.tar 複製到 Slave /tmpcd /var/lib
tar xvf /tmp/mysql.tar
chown -R mysql:mysql mysql
/var/lib/mysql 將產生 master.info 記錄 Master 連線資訊| 情境 | 預期結果 |
|---|---|
| 網路正常,Master 異動資料 | Slave 即時同步反映 |
| Slave 斷線/當機,Master 異動資料 | Slave 重啟後自動追上同步 |
log-bin:啟用二進位記錄(複寫核心)server-id:主從必須不同binlog-do-db/replicate-do-db:指定同步資料庫,避免同步系統庫master-connect-retry:斷線重試間隔(秒)log-slave-updates:Slave 亦記錄二進位日誌,支援鏈式複寫完成上述步驟即可建立穩定的 MySQL Master/Slave 複寫架構。