MySQL(十一):MySQL主從複製

一. 複製的基本原理
slave會從master讀取binlog來進行數據同步。
複製過程分爲以下三步:
(1) master將改變記錄到二進制日誌(binary log)。這些記錄過程叫做二進制日誌事件,binary log events。
(2) slave將master的binary log events拷貝到它的中繼日誌(relay log)。
(3) slave重做中繼日誌中的事件,將改變應用到自己的數據庫中。 MySQL複製是異步的且串行化的。
在這裏插入圖片描述

  • 複製的基本原則
    每個slave只有一個master;
    每個slave只能有一個唯一的服務器ID;
    每個master可以有多個salve。

  • 複製的最大問題
    延時

二. MySQL一主一從常見配置
mysql版本一致且後臺以服務運行。
主從都配置在[mysqld]結點下,都是小寫。

下面的示例以本機windows作爲主機,linux作爲從機。

  • 主機修改my.ini配置文件
    (1) [必須]主服務器唯一ID server-id=1
    (2) [必須]啓用二進制日誌
    log-bin=自己本地的路徑/data/mysqlbin
    log-bin=D:/devSoft/MySQLServer5.5/data/mysqlbin
    (3) [可選]啓用錯誤日誌
    log-err=自己本地的路徑/data/mysqlerr
    log-err=D:/devSoft/MySQLServer5.5/data/mysqlerr
    (4) [可選]根目錄
    basedir=“自己本地路徑”
    basedir=“D:/devSoft/MySQLServer5.5/”
    (5) [可選]臨時目錄
    tmpdir=“自己本地路徑”
    tmpdir=“D:/devSoft/MySQLServer5.5/”
    (6) [可選]數據目錄
    datadir=“自己本地路徑/Data/”
    datadir=“D:/devSoft/MySQLServer5.5/Data/”
    (7) read-only=0 主機,讀寫都可以
    (8) [可選]設置不要複製的數據庫
    binlog-ignore-db=mysql
    (9) [可選]設置需要複製的數據庫
    binlog-do-db=需要複製的主數據庫名字

  • 從機修改my.cnf配置文件
    [必須]從服務器唯一ID;
    [可選]啓用二進制日誌。

因修改過配置文件,請主機+從機都重啓後臺mysql服務。

  • 主機從機都關閉防火牆
    windows手動關閉;
    關閉虛擬機linux防火牆 service iptables stop

  • 在Windows主機上建立帳戶並授權slave

GRANT REPLICATION SLAVE ON *.* TO 'zhangsan'@'從機器數據庫IP' IDENTIFIED BY '123456';
flush privileges;
-- 查詢master的狀態,記錄下File和Position的值
show master status;
執行完此步驟後不要再操作主服務器MYSQL,防止主服務器狀態值變化

在這裏插入圖片描述

  • 在Linux從機上配置需要複製的主機
    在這裏插入圖片描述

  • 啓動從服務器複製功能
    start slave;

  • show slave status\G ; \G表示以K/V鍵值對格式展示
    下面兩個參數都是Yes,則說明主從配置成功!
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes
    在這裏插入圖片描述

  • 主機新建庫、新建表、insert記錄,從機複製

  • 如何停止從服務複製功能 stop slave;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章