首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Linux 下 MySQL 主從鏡像部署實戰:4.1 版本雙機同步配置全紀錄

     編輯:MySQL 資料庫相關知識

環境規劃

角色IPMySQL 版本安裝路徑
Master192.168.0.2054.1/opt/mysql
Slave192.168.0.2064.1/opt/mysql

1. Master 配置 /etc/my.cnf

[mysqld]
server-id = 1
log-bin = binlog_name
# 可選:binlog-do-db, binlog-ignore-db

2. 建立複寫帳號(在 Master)

GRANT REPLICATION SLAVE, RELOAD, SUPER ON *.*
TO 'slave'@'192.168.0.206' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;

3. 連線測試(從 Slave 向 Master)

/opt/mysql/bin/mysql -u slave -p -h 192.168.0.205
-- 應成功連線並看到 Master 資料庫列表

4. Slave 配置 /etc/my.cnf

[mysqld]
server-id = 2
master-host = 192.168.0.205
master-user = slave
master-password = 123456
master-port = 3306
# 可選:replicate-do-db, replicate-ignore-db

5. 初始資料同步三選一

  1. LOAD DATA FROM MASTER(MySQL 4.1 支援,簡單但鎖表久):
    /opt/mysql/bin/mysql -u root -p
    mysql> LOAD DATA FROM MASTER;
    
  2. mysqldump --master-data=1(推薦,單交易一致性):
    # Master
    /opt/mysql/bin/mysqldump --master-data=1 --single-transaction --all-databases > /backup/full.sql
    scp /backup/full.sql 192.168.0.206:/backup/
    
    # Slave
    /opt/mysql/bin/mysql -u root -p < /backup/full.sql
    
  3. 物理複製 datadir(最快,需停 Master 寫入):
    # Master: FLUSH TABLES WITH READ LOCK; 記下 SHOW MASTER STATUS;
    # 複製 /opt/mysql/var/* 到 Slave 同路徑
    # Master: UNLOCK TABLES;
    

6. 啟動 Slave 同步

/opt/mysql/share/mysql/mysql.server start
/opt/mysql/bin/mysql -u root -p
mysql> SHOW SLAVE STATUS\G
-- 確認:
-- Slave_IO_Running: Yes
-- Slave_SQL_Running: Yes
-- Seconds_Behind_Master: 0

7. 驗證同步

-- Master
CREATE DATABASE sampdb;
USE sampdb;
CREATE TABLE new (name CHAR(20), phone CHAR(20));
INSERT INTO new VALUES ('abc', '0532555555');

-- Slave
SHOW DATABASES; -- 應見 sampdb
USE sampdb;
SHOW TABLES;    -- 應見 new
SELECT * FROM new; -- 應見剛插入資料

關鍵管理指令

SLAVE STOP;SLAVE START;SHOW SLAVE STATUS\GPURGE MASTER LOGS TO 'binlog.000004';CHANGE MASTER TO ...
指令用途
停止複寫執行緒
啟動複寫執行緒
詳細狀態、錯誤、延遲
清理 Master 過期 Binlog(謹慎!Slave 未處理前不可清)
動態修改複寫參數(需 SLAVE STOP 後執行)

避坑指南

  • server-id 必須唯一,Master/Slave 不能相同。
  • Slave 修改配置後需刪除 data/master.info 重啟才生效(舊版機制)。
  • 防火牆 iptables 需開放 3306 雙向。
  • MySQL 4.1 為舊版(EOL),生產環境強烈建議升級至 5.7/8.0,獲得 GTID、半同步、平行複寫、安全修補。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved