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

MySQL 主從單向同步(Replication)完整部署實戰

     編輯:MySQL 綜合教學

環境規劃

角色主機名IP
Masterdbasky192.168.1.120
Slavedbaskyback192.168.1.121

目標:Slave 同步 Master 上的 test 資料庫。

Master 端設定

  1. 建立同步專用帳號:
    GRANT REPLICATION SLAVE ON *.* TO 'xu'@'192.168.1.121' IDENTIFIED BY '123456';
  2. 編輯 /etc/my.cnf([mysqld] 區段):
    server-id=1
    log-bin=/var/log/mysql/mysql.log
    binlog-do-db=test
    
  3. 重啟 MySQL,執行 SHOW MASTER STATUS; 記錄 File 與 Position。

Slave 端設定

  1. 編輯 /etc/my.cnf:
    server-id=2
    master-host=192.168.1.120
    master-user=xu
    master-password=123456
    master-port=3306
    master-connect-retry=60
    replicate-do-db=test
    
  2. 重啟 MySQL。
  3. 若為初次同步,需在 Slave 執行:
    CHANGE MASTER TO
      MASTER_HOST='192.168.1.120',
      MASTER_USER='xu',
      MASTER_PASSWORD='123456',
      MASTER_LOG_FILE='mysql.000001',   -- Master 的 File 值
      MASTER_LOG_POS=38392;             -- Master 的 Position 值
    START SLAVE;
    
  4. 驗證:SHOW SLAVE STATUS\G 確認 Slave_IO_Running: Yes、Slave_SQL_Running: Yes。

驗證同步鏈路

Master 執行 SHOW PROCESSLIST; 可見 Slave 的連線狀態,確認同步鏈路建立成功。

避坑提醒

  • MySQL 5.6+ 建議使用 GTID 模式,避免手動指定 binlog 位置。
  • server-id 必須唯一,不可重複。
  • 防火牆需開放 3306 埠供 Slave 連線。
  • 生產環境建議啟用 sync_binlog=1、innodb_flush_log_at_trx_commit=1 保證資料不丟失。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved