針對單主單從、單庫同步場景,提煉最小必要配置步驟,便於快速部署與驗證。適合測試環境、輕量級生產備份、快速恢復演練。
[mysqld]
log-bin = mysql-bin
server-id = 1
binlog-do-db = powerdns # 僅同步指定庫
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.1.2' IDENTIFIED BY 'passwd';
FLUSH PRIVILEGES;
安全: 帳號限制從庫 IP,避免 % 通配符。
SHOW MASTER STATUS;
輸出示例:
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 | 309 | powerdns | mysql |
+------------------+----------+--------------+------------------+
記錄: File=mysql-bin.000002、Position=309。此後 Master 勿寫入,防坐標漂移。
[mysqld]
server-id = 2
CHANGE MASTER TO
MASTER_HOST = '192.168.1.1',
MASTER_USER = 'slave',
MASTER_PASSWORD = 'passwd',
MASTER_LOG_FILE = 'mysql-bin.000002',
MASTER_LOG_POS = 309;
START SLAVE;
SHOW SLAVE STATUS\G
核心指標必須為 Yes:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
任一為 No 即同步異常,需檢查 Last_IO_Error / Last_SQL_Error。
#!/bin/bash
mysql -e "SHOW SLAVE STATUS\G" | grep -E 'Slave_IO_Running|Slave_SQL_Running|Last_.*_Error'
配合 cron 定時巡檢,異常即時告警。
以上 7 步完成極簡主從部署。生產環境建議補全:多庫同步、GTID 模式、半同步複制、監控告警、延遲從庫、切主演練等高可用體系。