MySQL : 主從同步

MySQL 數據庫主從同步

主從介紹

  • MySQL主從又叫做Replication, AB複製.就是A主機與B主機做主從後,在A上寫數據,另一臺機器B也會跟着同步寫入數據,保持實時同步.
  • MySQL主從是基於binlog實現,主必須開啓binlog.
  • 主從步驟:
    1. 主 將操作記錄到binlog
    2. 從將主的binlog同步到本機寫在relaylog裏.
    3. 從根據relaylog裏面的sql語句按照順序執行
      • 主上有一個log dump線程,用來和從的I/O線程傳遞binlog
      • 從上有兩個線程,其中I/O線程用來同步主的binlog並升恆relaylog,另外一個sql線程來吧relaylog裏面的sql語句按順序執行

配置

前言

  1. 兩臺主機上的MySQL版本需要一致
  2. MySQL 都會有一個uuid,如果是複製或者同一個鏡像的MySQL,uuid可能一致,需要修改
    • uuid 寫在 auto.cnf 文件,一般路徑在 /var/lib/mysql/auto.cnf,可以通過find / -name auto.cnf查找

主庫配置

  1. 編輯mysql配置文件,一般是在 /etc/mysql/my.cnf, 可以通過ps -ef|grep mysql 查找MySQL服務信息
    log-bin=mysql-bin # 非必需
    server-id=1    # 必需,與從庫 id 不能一致
    
  2. 創建用於同步數據的賬戶
    # 用戶名repl , 從庫ip 192....  密碼:123456
    CREATE USER 'repl'@'192.168...' IDENTIFIED BY '123456';
    GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192....';
    FLUSH PRIVILEGES;
    
  3. 查看bin-log 是否開啓
    # 登錄mysql
    mysql> show variables like 'log_bin%';
    
    在這裏插入圖片描述
  4. 查看 master狀態,結果參數後面從庫需要用到
    show master status;
    
    在這裏插入圖片描述

從庫配置

  1. 修改master 相關參數
    # 登錄mysql
    # 主庫ip: 192... 用戶: repl  密碼:123456  都與主庫上面創建的一致
    change master to master_host='192....', master_user='repl', master_password='123456', master_log_file='mysql-bin.000001', master_log_pos=514;
    
    
  2. 啓動/停止 slave 服務
    # 登錄MySQL
    start/stop slave;
    
  3. 查看從庫狀態
    # 登錄MySQL
    show slave status\G;
    
    在這裏插入圖片描述
    顯示yes ,表示配置成功
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章