MySQL主從複製的原理和注意事項都在這兒了!!

寫在前面

最近在寫Mycat專題,由於不少小夥伴最近要出去面試,問我能不能簡單寫下MySQL的主從複製原理和注意事項,因為在之前的面試中被問到了這些問題。我:可以啊,安排上了!!

主從複製原理

(1) Master 將數據改變記錄到二進制日誌(binary log)中,也就是配置文件 log-bin 指定的文件, 這些記錄叫做二進制日誌事件(binary log events);

(2) Slave 通過 I/O 線程讀取 Master 中的 binary log events 並寫入到它的中繼日誌(relay log);

(3) Slave 重做中繼日誌中的事件,把中繼日誌中的事件信息一條一條的在本地執行一次,完 成數據在本地的存儲,從而實現將改變反映到它自己的數據(數據重放)。

注意事項

(1)主從服務器操作系統版本和位數一致;

(2) Master 和 Slave 數據庫的版本要一致;

(3) Master 和 Slave 數據庫中的數據要一致;

(4) Master 開啟二進制日誌,Master 和 Slave 的 server_id 在局域網內必須唯一;

配置主從複製步驟

Master數據庫

(1) 安裝數據庫;

(2) 修改數據庫配置文件,指明 server_id,開啟二進制日誌(log-bin);

(3) 啟動數據庫,查看當前是哪個日誌,position 號是多少;

(4) 登錄數據庫,授權數據複製用戶(IP 地址為從機 IP 地址,如果是雙向主從,這裡的 還需要授權本機的 IP 地址,此時自己的 IP 地址就是從 IP 地址);

(5) 備份數據庫(記得加鎖和解鎖);

(6) 傳送備份數據到 Slave 上;

(7) 啟動數據庫;

以上步驟,為單向主從搭建成功,想搭建雙向主從需要的步驟:

(1) 登錄數據庫,指定 Master 的地址、用戶、密碼等信息(此步僅雙向主從時需要);

(2) 開啟同步,查看狀態;

Slave 上的配置

(1) 安裝數據庫;

(2) 修改數據庫配置文件,指明 server_id(如果是搭建雙向主從的話,也要開啟二進制 日誌 log-bin);

(3) 啟動數據庫,還原備份;

(4) 查看當前是哪個日誌,position 號是多少(單向主從此步不需要,雙向主從需要);

(5) 指定 Master 的地址、用戶、密碼等信息;

(6) 開啟同步,查看狀態。

好了,今天就到這兒吧,後續我們實戰以各種方式實現MySQL主從複製,我是冰河,我們下期見!!

重磅福利

微信搜一搜【冰河技術】微信公眾號,關注這個有深度的程序員,每天閱讀超硬核技術乾貨,公眾號內回復【PDF】有我準備的一線大廠面試資料和我原創的超硬核PDF技術文檔,以及我為大家精心準備的多套簡歷模板(不斷更新中),希望大家都能找到心儀的工作,學習是一條時而鬱鬱寡歡,時而開懷大笑的路,加油。如果你通過努力成功進入到了心儀的公司,一定不要懈怠放鬆,職場成長和新技術學習一樣,不進則退。如果有幸我們江湖再見!

另外,我開源的各個PDF,後續我都會持續更新和維護,感謝大家長期以來對冰河的支持!!

Tags: