寫在前面
最近在寫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,後續我都會持續更新和維護,感謝大家長期以來對冰河的支援!!