在數據庫系統中,一主多從(Master-Slave)架構是一種常見的部署方式,主要用于實現讀寫分離、負載均衡和數據備份。主庫(Master)負責處理寫操作,而從庫(Slave)則負責處理讀操作。本文將詳細介紹如何在MySQL中部署一主多從架構。
在開始部署之前,確保你已經準備好以下環境:
在主庫服務器上,編輯MySQL配置文件(通常位于/etc/my.cnf或/etc/mysql/my.cnf),添加或修改以下配置項:
[mysqld]
server-id=1
log-bin=mysql-bin
binlog-format=ROW
server-id:主庫的唯一標識,必須為1。log-bin:啟用二進制日志,用于主從復制。binlog-format:設置二進制日志格式為ROW,推薦使用。保存配置文件后,重啟MySQL服務以使配置生效:
sudo systemctl restart mysql
在主庫上創建一個用于復制的用戶,并授予復制權限:
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
在主庫上執行以下命令,記錄File和Position的值,稍后在從庫配置中會用到:
SHOW MASTER STATUS;
在每臺從庫服務器上,編輯MySQL配置文件,添加或修改以下配置項:
[mysqld]
server-id=2
server-id:從庫的唯一標識,必須與主庫不同,且每個從庫的server-id必須唯一。保存配置文件后,重啟MySQL服務以使配置生效:
sudo systemctl restart mysql
在從庫上執行以下命令,配置從庫連接到主庫:
CHANGE MASTER TO
MASTER_HOST='主庫IP地址',
MASTER_USER='repl',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='主庫的File值',
MASTER_LOG_POS=主庫的Position值;
在從庫上執行以下命令,啟動復制進程:
START SLAVE;
在從庫上執行以下命令,檢查復制狀態:
SHOW SLAVE STATUS\G
確保Slave_IO_Running和Slave_SQL_Running的值均為Yes,表示復制已成功啟動。
在主庫上創建一個測試數據庫和表,并插入一些數據:
CREATE DATABASE test_db;
USE test_db;
CREATE TABLE test_table (id INT, name VARCHAR(100));
INSERT INTO test_table VALUES (1, 'Alice'), (2, 'Bob');
在從庫上查詢測試數據,驗證數據是否已成功復制:
USE test_db;
SELECT * FROM test_table;
如果從庫上能夠查詢到主庫插入的數據,說明一主多從部署成功。
通過以上步驟,你已經成功部署了MySQL一主多從架構。這種架構不僅可以提高數據庫的讀取性能,還能通過從庫實現數據備份和故障恢復。在實際生產環境中,建議定期監控主從復制的狀態,確保數據的一致性和系統的穩定性。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。