從服務器的IO線程從主服務器獲取二進制日誌,並在本地保存爲中繼日誌,然後通過SQL線程來在從上執行中繼日誌中的內容,從而使從庫和主庫保持一致。主從同步的詳細過程如下:
1. 主服務器驗證連接。
2. 主服務器爲從服務器開啓一個線程。
3. 從服務器將主服務器日誌的偏移位告訴主服務器。
4. 主服務器檢查該值是否小於當前二進制日誌偏移位。
5. 如果小於,則通知從服務器來取數據。
6. 從服務器持續從主服務器取數據,直至取完,這時,從服務器線程進入睡眠,主服務器線程同時進入睡眠。
7. 當主服務器有更新時,主服務器線程被激活,並將二進制日誌推送給從服務器,並通知從服務器線程進入工作狀態。
8. 從服務器SQL線程執行二進制日誌,隨後進入睡眠狀態。
注意主從服務器的mysql版本必須一致或者從服務器的mysql版本高於主服務器
試驗環境
CentOS6.5
mysql爲保持版本一致使用yum安裝
主節點ip爲172.16.249.113
從節點ip 172.16.37.1
實現步驟
1、主服務器mysql配置
vim /etc/my.cnf
datadir = /mydata/data
log-bin=/mydata/binlogs/master-bin
2、從服務器配置文件
datadir = /mydata/data
relay-log = /mydata/reaylogs/relay-log
#log-bin=mysql-bin
#binlog_format=mixed
server-id = 2
3、在主服務器上建立同步帳號
GRANT REPLICATION SLAVE,FILE ON *.* TO 'replication'@'172.16.37.%' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
4、查看主節點信息
5、在從服務器上使用change master從主服務器上同步
6、查看從節點信息
7、啓動從節點以及啓動之後從節點信息