MySQL主從複製

1、複製的基本原理

一、slave會從master讀取binlog來進行數據同步mysql

二、三步驟+原理圖linux

  MySQL複製過程分紅三步:
  1 master將改變記錄到二進制日誌(binary log)。這些記錄過程叫作二進制日誌事件,binary log events;
  2 slave將master的binary log events拷貝到它的中繼日誌(relay log);
  3 slave重作中繼日誌中的事件,將改變應用到本身的數據庫中。 MySQL複製是異步的且串行化的sql

(1)master將改變記錄到二進制日誌(binary log)。這些記錄過程叫作二進制日誌事件,binary log events數據庫

(2)slave將master的binary log events拷貝到它的中繼日誌(relay log)windows

(3)slave重作中繼日誌中的事件,將改變應用到本身的數據庫中。 MySQL複製是異步的且串行化的服務器

2、複製的基本原則

一、每一個slave只有一個master異步

二、每一個slave只能有一個惟一的服務器IDspa

三、每一個master能夠有多個salve日誌

3、複製的最大問題

延時code

4、一主一從常見配置

一、mysql版本一致且後臺以服務運行

二、主從都配置在[mysqld]結點下,都是小寫

三、主機修改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配置文件

(1)[必須]從服務器惟一ID

(2)[可選]啓用二進制日誌

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

主機從機都關閉防火牆:

  windows手動關閉

  關閉虛擬機linux防火牆    service iptables stop

(3)在Windows主機上創建賬戶並受權slave

  ① GRANT REPLICATION SLAVE ON *.* TO 'zhangsan'@'從機器數據庫IP' IDENTIFIED BY '123456';

    

  ② Subtopic

  ③ flush privileges;

  ④ 查詢master的狀態

    show master status;

 

    記錄下File和Position的值

  ⑤ 執行完此步驟後不要再操做主服務器MYSQL,防止主服務器狀態值變化

 (4)在Linux從機上配置須要複製的主機

  ① CHANGE MASTER TO MASTER_HOST='主機IP',MASTER_USER='zhangsan',MASTER_PASSWORD='123456',MASTER_LOG_FILE='File名字',MASTER_LOG_POS=Position數字;

CHANGE MASTER TO MASTER_HOST='192.168.124.3',
MASTER_USER='zhangsan',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysqlbin.具體數字',MASTER_LOG_POS=具體值;

  

  ② 啓動從服務器複製功能

    start slave;

  ③ show slave status\G

    下面兩個參數都是Yes,則說明主從配置成功!

    Slave_IO_Running: Yes

    Slave_SQL_Running: Yes

    示例參考:

    

(5)主機新建庫、新建表、insert記錄,從機複製

(6)如何中止從服務複製功能

   stop slave;

相關文章
相關標籤/搜索