什麼是MySQL數據庫主從複製
在多服務器業務環境中,數據庫往往成為系統性能的瓶頸點。想象這樣的場景:
- 主服務器忙着處理用户下單;
- 後台服務器還在讀取用户信息;
- 報表系統又來統計銷售數據……
當所有請求同時涌向單一數據庫,響應延遲的概率增加了,甚至有服務中斷的可能。此時解決方案之一便是:主從複製。它讓數據庫也能"分工合作",高效應對各類業務需求。
MySQL數據庫主從複製是一種常見的數據庫部署架構,其中一個主節點(Master)處理所有寫操作,並將數據變更同步到一個或多個從節點(Slave),從節點通常用於處理讀請求。其基本原理如下:
- 主庫記錄二進制日誌(binlog),記錄所有數據變更操作;
- dump 線程讀取二進制日誌有新事件併發送給 I/O 線程;
- 從庫中的 I/O 線程將接收到的事件寫入本地的中繼日誌(Relay Log),並通過 SQL 線程執行這些操作;
- 實現數據在多個節點間的同步。
數據庫主從複製的優勢
在服務器多機管理場景中,數據庫主從複製帶來的好處顯而易見:
- 讀寫分離:提升整體數據庫性能;
- 高可用架構基礎:為故障轉移、主從切換提供可能;
- 數據備份冗餘:從庫可用於快速恢復或作為熱備;
- 負載均衡能力增強:在多個從庫間分散讀負載,緩解主庫壓力。
數據庫主從的傳統搭建流程
1.準備兩台服務器,分別安裝好MySQL並進行初始化操作。關閉防火牆或開放指定端口3306(MySQL默認端口)。
2.修改主庫配置文件 /etc/my.cnf,並重啓。登錄mysql,創建遠程連接賬號,並授予主從複製權限。
#定義mysql 服務ID,整個集羣環境唯一。
server id=1
#是否只讀,1是,0否。
read-only=0
#創建用户kai並設置密碼,該用户可以在任何主機連MySQL服務。
CREATE USER 'kai'@'%' INDENTIFIED WITH mysql_native_password BY 'root@lxware';
#為kai用户分配主從複製權限
GRANT REPLICATION SLAVE ON *.* TO 'kai'@'%';
#查看主庫狀態,確認數據庫當前寫入的file和position。
show master status
3.修改從庫配置文件 /etc/my.cnf,並重啓。登錄mysql,連接主庫配置,並開啓同步。
#定義mysql服務ID,整個集羣環境唯一。
server-id=2
#是否只讀,1是,0否。
read-only=1
#以8.0.23及以後版本為例
CHANGE REPLICATION SOURCE TO SOURCE_HOST='xxx.xxx.xxx.xxx',SOURCE_USER='xxx',SOURCE_PASSWORD='xxx',SOURCE_LOG_FILE='xxx',SOURCE_LOG_POS=xxx;
#開啓主從同步
start replica
#查看主從同步狀態
show replica status
4.確認同步狀態中的Replica_IO_running和Replica_SQL_running狀態為“Yes”則表示數據庫主從配置成功。
基於面板工具的數據庫主從
我們已經描述了通過命令行工具進行MySQL數據庫主從搭建的基本流程。現在,基於 1Panel 面板,你只需點擊/創建即可完成這些配置。
1Panel 是新一代服務器運維管理面板,通過可視化的操作界面,讓你的服務器管理操作更加便捷。
在當前版本中,1Panel 已支持多機資源管理,即支持用户在一個面板中添加並管理多台服務器,並通過 Web 界面實現跨服務器的運維操作,如應用部署、系統監控、文件管理等。
如果你正在使用 1Panel 來管理多台服務器,你一定深有體會:一個簡潔統一的操作面板能顯著提升工作效率,為你節省大量時間和精力。
MySQL數據庫主從複製功能的加入將進一步強化這些能力:
- 統一配置:用户可在 UI 中快速設置主從結構,無需手動 SSH;
- 靈活創建:支持添加多個數據庫集羣,靈活配置一對一、一對多的主從架構;
- 監控同步狀態:監控主從同步狀態;
- 更適配多機部署場景:基於主從架構充分釋放性能潛力。
MySQL數據庫主從複製功能的加入,標誌着 1Panel 正在更加全面且深入地從“單點服務管理”邁向“分佈式架構治理”,它將幫助用户構建更高性能、更高可用性的服務體系。