首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 單向主從同步配置實戰 (FreeBSD):my.cnf 關鍵參數、二進制日志、複製賬號、啟動驗證與故障排查

     編輯:MySQL 綜合教學

環境與拓撲

  • **OS:** FreeBSD 5.4 (雙節點)
  • **軟件:** Apache 2.0.55, PHP 4.4.0, MySQL 4.1.15 (源碼編譯/ports 安裝)
  • **拓撲:** Master (192.168.0.1) → 單向複製 → Slave (192.168.0.2)
  • **同步庫:** `abc` (單庫)
  • **同步用戶:** `root` (演示用,生產**禁用** root 複製)

1. 統一配置文件部署


# 兩台均執行
cp /usr/local/MySQL/share/mysql/my-medium.cnf /usr/local/MySQL/var/my.cnf
# my.cnf 位於數據目錄 (datadir) 下

2. Master 配置 (/usr/local/MySQL/var/my.cnf)


[mysqld]
server-id = 1
log-bin = mysql-bin
binlog-do-db = abc
# binlog-ignore-db = mysql,test  # 可選忽略

重啟:`/usr/local/MySQL/bin/mysqladmin shutdown && /usr/local/MySQL/bin/mysqld_safe --user=mysql &`

3. Slave 配置 (/usr/local/MySQL/var/my.cnf)


[mysqld]
server-id = 2
master-host = 192.168.0.1
master-user = root
master-password = your_root_password
master-port = 3306
master-connect-retry = 60
replicate-do-db = abc
# relay-log = slave-relay-bin  # 可選自定義

**注意:** MySQL 4.1/5.0/5.1 支持在 `my.cnf` 中配置 `master-host` 等參數,**5.5+ 已棄用**,必須用 `CHANGE MASTER TO` SQL 命令。

4. 啟動同步並驗證


# Slave 端
/usr/local/MySQL/bin/mysqladmin shutdown
/usr/local/MySQL/bin/mysqld_safe --user=mysql &

mysql> SHOW SLAVE STATUS\G;
*************************** 1. row ***************************
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0
...

5. 故障排查清單

現象原因排查命令
IO_Running: Connecting網絡/防火牆/密碼/主機名解析`telnet 192.168.0.1 3306`; `ping master_host`; 檢查 `master-user/password`
SQL_Running: No數據衝突/Schema 差異/觸發器錯誤`Last_SQL_Error`; `SHOW RELAYLOG EVENTS` 定位錯誤事務
Seconds_Behind_Master 增長大事務/慢查詢/單線程/硬件瓶頸`SHOW PROCESSLIST` 看 SQL 線程; `slow_query_log` 分析
Replicate_Do_DB 不生效跨庫更新/默認庫不匹配只同步 `USE abc` 後的語句; 跨庫 `UPDATE abc.t SET ...` 不會被複製

版本遷移提示 (4.1 → 5.5+)

  • 配置文件 `master-host` 等參數**失效**,必須改用 `CHANGE MASTER TO`。
  • `binlog_format` 默認 `STATEMENT` → 建議 `MIXED` 或 `ROW`。
  • GTID 複制 (5.6+) 簡化故障切換,`MASTER_AUTO_POSITION=1`。
  • 複製用戶**專用賬號**,最小權限 `REPLICATION SLAVE`,禁用 `root`。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved