在實現mysql的多種模式前提下,首先先介紹一下mysql是如何工做的。mysql
大概網絡拓撲圖以下:linux
一、該過程的第一部分就是master記錄二進制日誌。在每一個事務更新數據完成以前,master在二進制日誌記錄這些改變。MySQL將事務串行的寫入二進制日誌,在事件寫入二進制日誌完成後,master通知存儲引擎提交事務。此後可接收slave的請求。sql
二、下一步就是slave將master的binary log拷貝到它本身的中繼日誌。首先,slave開始一個工做線程——I/O線程。I/O線程在master上打開一個普通的鏈接,而後開始在主節點上binlog dump process(二進制轉存線程)。Binlog dump process從master的二進制日誌中讀取事件,若是已經跟上master,它會睡眠並等待master產生新的事件。I/O線程將這些事件寫入中繼日誌。數據庫
三、SQL slave thread(SQL從線程)處理該過程的最後一步。SQL線程從中繼日誌讀取事件,並重放其中的事件而更新slave的數據,使其與master中的數據一致。只要該線程與I/O線程保持一致,中繼日誌一般會位於OS的緩存中,因此中繼日誌的開銷很小。centos
1、主從複製模式。緩存
一、環境準備:服務器
centos系統服務器2臺、一臺用戶作Mysql主服務器(172.17.110.111),一臺用於作Mysql從服務器(172.17.38.39),配置好yum源、防火牆關閉、各節點時鐘服務同步、各節點之間能夠經過主機名互相通訊。網絡
二、準備步驟:框架
(1)iptables -F && setenforce 清空防火牆策略,關閉selinuxide
(2)拿兩臺服務器都使用yum方式安裝Mysql服務,要求版本一致
(3)分別啓動兩臺服務器mysql服務,確保服務正常
①配置master的主配置文件。
②啓動服務,建立複製帳號,對slave進行受權。
④讓slave鏈接master,讀取master的二進制日誌更新的事物。
2、實現互爲主從框架。
①修改配置文件(172.17.110.111服務器)
兩個服務器配置文件除了id不同,其它都同樣(172.17.38.39服務器)。
②雙方相互受權,即彼此即便對方的主也是對方的從。
在(172.17.38.39服務器)指向(172.17.110.111),並查看狀態
在172.17.110.111服務器,指向(172.17.38.39),查看狀態。
③測試。
在(172.17.110.111服務器)建立一個數據庫,裏面存放內容。在(172.17.38.39服務器)上查看是否同步。
在在(172.17.38.39服務器)建立一個數據庫,裏面存放內容。在(172.17.110.111服務器)上查看是否同步。