基於 CentOS 5.5 雙虛擬機環境,詳細記錄 MySQL 主從複製的原理、配置步驟、驗證方法與常見坑點,適用於讀寫分離、備份容災架構基礎建設。
| 角色 | IP | Server-ID | 說明 |
|---|---|---|---|
| Master | 192.168.1.101 | 101 | 寫入節點,開啟 Binlog |
| Slave | 192.168.1.105 | 105 | 讀取/備份節點,同步 Binlog |
# /etc/my.cnf [mysqld] log-bin=mysql-bin # 啟用 Binlog,文件名前綴 binlog_format=mixed # 混合模式:Statement/Row 自動切換 server-id=101 # 全局唯一,建議用 IP 末段

service mysqld restart
[mysqld] log-bin=mysql-bin binlog_format=mixed server-id=105 # 唯一,不可與 Master 重複
service mysqld restart
mysql -u root -p GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY 'SlavePass123!'; FLUSH PRIVILEGES;

REPLICATION SLAVE:僅賦予複製所需最小權限'%':允許任意 IP 連接,生產建議限制具體 Slave IP關鍵:記錄 File 與 Position,之後不要在 Master 執行任何寫操作,否則坐標失效。

MASTER_LOG_POS 不加引號,否則語法錯誤成功標誌: