MySQL 3.23.23+ 引入內建複寫(Replication),單向主從是高可用、讀寫分離、備份卸載的基石。本系列三篇將從零演示:單向主從 → 雙主互備 → 容錯連線與生產建議。本篇聚焦**單向主從 (A→B) 完整配置流程**。
GRANT FILE ON *.* TO 'replicate'@'10.1.1.2' IDENTIFIED BY 'password';FLUSH PRIVILEGES;my.cnf [mysqld] 區段加入 log-bin。hostname-bin.000001 等 Binlog 檔。mysqladmin shutdown)。/var/lib/mysql/ 或自定 datadir) 到備份位置。mysqldump 邏輯導出導入。datadir。chown -R mysql:mysql /datadirchmod 660 /datadir/*.MYD /datadir/*.MYIchmod 770 /datadir/*/SELECT 確認資料正確,**嚴禁執行寫入**。my.cnf [mysqld]:master-host=10.1.1.1master-user=replicatemaster-password=passwordSHOW SLAVE STATUS\G。INSERT INTO test.tbl VALUES (1, 'repl_test');SELECT * FROM test.tbl WHERE col2='repl_test';| 風險 | 後果 | 應對 |
|---|---|---|
| 快照不完整(漏表/漏庫) | 備庫重放 Binlog 時找不到表 → SQL Thread 停止 | 快照前 SHOW DATABASES、SHOW TABLES 核對,或用 mysqldump --all-databases |
| 異構平台直接複製檔案 | 資料檔格式不相容 → 啟動失敗/資料損壞 | 跨平台必用 mysqldump 邏輯備份 |
| Binlog 啟用順序錯誤 | 快照包含啟用前事件 → 備庫重放主鍵衝突 | **關機 → 複製 → 啟動** 嚴格順序 |
| 複寫報錯導致 SQL Thread 停止 | 資料漂移、延遲無限增大 | 錯誤日誌分析 → 修正 → SLAVE START 重啟執行緒 |
log_bin=mysql-bin、server_id=1 (Master)、server_id=2 (Slave)、gtid_mode=ON、enforce_gtid_consistency=ON。CHANGE MASTER TO MASTER_HOST='10.1.1.1', MASTER_USER='replicate', MASTER_PASSWORD='password', MASTER_AUTO_POSITION=1; (GTID 模式)。SHOW REPLICA STATUS\G (8.0 重命名)。