一、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複製是異步的且串行化的服務器
一、每一個slave只有一個master異步
二、每一個slave只能有一個惟一的服務器IDspa
三、每一個master能夠有多個salve日誌
延時code
一、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;