CentOS 搭建 MySQL 主從複製,讀寫分離
在當今的數據驅動世界中,數據庫的性能和可用性至關重要。MySQL 作為一個流行的開源數據庫管理系統,提供了多種功能來提高數據的可用性和性能。其中,主從複製和讀寫分離是兩個重要的技術,能夠幫助企業實現高可用性和負載均衡。本文將介紹如何在 CentOS 系統上搭建 MySQL 的主從複製及讀寫分離。
什麼是 MySQL 主從複製?
MySQL 主從複製是一種數據庫架構,其中一個主數據庫(Master)負責處理所有的寫入操作,而一個或多個從數據庫(Slave)則用於處理讀取操作。這種架構不僅可以提高數據的可用性,還能通過將讀取請求分散到多個從數據庫上來減輕主數據庫的負擔。
搭建環境準備
在開始之前,您需要準備兩台 CentOS 伺服器,一台作為主伺服器,另一台作為從伺服器。確保兩台伺服器都已安裝 MySQL,並且版本相同。以下是安裝 MySQL 的基本步驟:
sudo yum install mysql-server
sudo systemctl start mysqld
sudo systemctl enable mysqld
配置主伺服器
首先,您需要在主伺服器上進行一些配置。編輯 MySQL 配置文件:
sudo vi /etc/my.cnf
在文件中添加以下配置:
[mysqld]
server-id=1
log-bin=mysql-bin
binlog-do-db=your_database_name
保存並退出後,重啟 MySQL 服務:
sudo systemctl restart mysqld
創建複製用戶
接下來,您需要創建一個用於複製的用戶。登錄到 MySQL 並執行以下命令:
mysql -u root -p
CREATE USER 'replicator'@'%' IDENTIFIED BY 'your_password';
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
FLUSH PRIVILEGES;
配置從伺服器
在從伺服器上,您也需要編輯 MySQL 配置文件:
sudo vi /etc/my.cnf
添加以下配置:
[mysqld]
server-id=2
保存並退出後,重啟 MySQL 服務:
sudo systemctl restart mysqld
設置從伺服器的複製
在從伺服器上,您需要告訴它主伺服器的位置信息。首先,您需要在主伺服器上獲取當前的二進制日誌文件名和位置:
mysql -u root -p
SHOW MASTER STATUS;
記下 File 和 Position 的值,然後在從伺服器上執行以下命令:
mysql -u root -p
CHANGE MASTER TO
MASTER_HOST='主伺服器的IP',
MASTER_USER='replicator',
MASTER_PASSWORD='your_password',
MASTER_LOG_FILE='記下的File',
MASTER_LOG_POS=記下的Position;
START SLAVE;
檢查複製狀態
在從伺服器上,您可以使用以下命令檢查複製狀態:
SHOW SLAVE STATUSG
確保 Slave_IO_Running 和 Slave_SQL_Running 都顯示為 Yes,這表示複製已成功啟動。
實現讀寫分離
一旦主從複製設置完成,您可以通過應用程序將寫入請求發送到主伺服器,而將讀取請求發送到從伺服器。這樣可以有效地減少主伺服器的負擔,提高整體性能。
總結
通過在 CentOS 上搭建 MySQL 的主從複製和讀寫分離,您可以顯著提高數據庫的性能和可用性。這種架構不僅能夠實現數據的高可用性,還能有效地分散讀取負載,提升用戶體驗。如果您正在尋找穩定的 香港VPS 來搭建您的數據庫,Server.HK 提供多種解決方案以滿足您的需求。