文章目錄
- 前言
- 一、安裝 MySQL
- 二、主服務器(Master)配置
- 三、從服務器(Slave)配置
- 四、測試主從復制
- 五、注意事項
前言
MySQL 主從配置是一種實用的數據庫架構,主服務器處理寫入操作,從服務器負責只讀操作,能提升性能、加強冗余、擴展可讀性 。下面以常見的 Linux 系統(CentOS 7 )、MySQL 8.0 版本為例,為你介紹配置步驟。
一、安裝 MySQL
MySQL8.0 超詳細安裝配置教程(附安裝包):https://blog.csdn.net/u014164303/article/details/145493332
在主服務器和從服務器上都執行以下操作:
- 更新系統軟件包:打開終端,輸入命令sudo yum update -y ,更新系統已安裝的軟件包。
- 安裝 MySQL 官方倉庫:執行sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm ,安裝 MySQL 官方的 yum 源。
- 安裝 MySQL 服務器:輸入sudo yum install -y mysql-server ,安裝 MySQL 服務器程序。
- 啟動 MySQL 服務:使用sudo systemctl start mysqld ,啟動 MySQL 服務。
- 設置開機自啟:執行sudo systemctl enable mysqld ,讓 MySQL 服務在開機時自動啟動。
初始化 MySQL: - 獲取臨時密碼:通過sudo grep ‘temporary password’ /var/log/mysqld.log ,獲取初始的臨時密碼。
- 登錄 MySQL:輸入mysql -u root -p ,然后粘貼剛才獲取的臨時密碼登錄。
- 修改密碼:運行ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘YourNewPassword’; ,把密碼修改為自己設定的新密碼。
二、主服務器(Master)配置
- 編輯 MySQL 配置文件:使用命令sudo vi /etc/my.cnf 打開配置文件,添加或修改以下內容:
- server-id = 1 :設置服務器唯一 ID,必須是正整數,且主從服務器的 ID 不能相同。
- log-bin = mysql-bin :開啟二進制日志,用于記錄數據庫的更改操作。
- expire-logs-days = 10 :指定二進制日志的過期時間,可按需調整。
- max-binlog-size = 100M :設置二進制日志文件的最大大小。
- binlog-do-db = your_database_name :指定允許復制的數據庫,可根據實際情況修改,若要復制多個數據庫,可重復此配置項。
- 保存并退出文件后,執行sudo systemctl restart mysqld 重啟 MySQL 服務使配置生效。
- 創建用于復制的用戶:登錄 MySQL,執行以下命令:
CREATE USER’repl_user’@‘%’ IDENTIFIED BY ‘YourReplicationPassword’;
GRANT REPLICATION SLAVE ON . TO’repl_user’@‘%’;
FLUSH PRIVILEGES;
上述命令創建了名為repl_user的用戶,設置其密碼為YourReplicationPassword ,并賦予其主從復制相關權限,最后刷新權限。
- 獲取二進制日志信息:在 MySQL 中執行SHOW MASTER STATUS; ,記錄下File和Position的值,后續配置從服務器時會用到。
三、從服務器(Slave)配置
- 編輯 MySQL 配置文件:用sudo vi /etc/my.cnf 打開文件,添加或修改以下配置:
server-id = 2 :設置從服務器唯一 ID,不能與主服務器及其他從服務器相同。
保存并退出后,執行sudo systemctl restart mysqld 重啟 MySQL 服務。 - 配置從服務器連接主服務器:登錄 MySQL,執行以下命令配置從服務器連接主服務器:
CHANGE MASTER TO
MASTER_HOST=‘主服務器IP’,
MASTER_USER=‘repl_user’,
MASTER_PASSWORD=‘YourReplicationPassword’,
MASTER_LOG_FILE=‘主服務器二進制日志文件名’,
MASTER_LOG_POS=主服務器二進制日志位置;
var code = “084a9761-2833-438f-ab96-92c3126a4ff9”
將MASTER_LOG_FILE和MASTER_LOG_POS替換為在主服務器上執行SHOW MASTER STATUS; 時記錄的值。
3. 啟動從服務器復制進程:在 MySQL 中執行START SLAVE; ,啟動從服務器的復制進程。
4. 檢查從服務器狀態:執行SHOW SLAVE STATUS\G; ,確保Slave_IO_Running和Slave_SQL_Running的值都為Yes ,表示復制進程正常運行。
四、測試主從復制
在主服務器上創建測試數據庫和表:登錄主服務器的 MySQL,執行以下命令:
CREATE DATABASE test_db;
USE test_db;
CREATE TABLE test_table (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50));
INSERT INTO test_table (name) VALUES (‘Test Data’);
在從服務器上檢查數據復制情況:登錄從服務器的 MySQL,執行以下命令:
USE test_db;
SELECT * FROM test_table;
若能看到主服務器上插入的數據,說明主從復制配置成功。
五、注意事項
- 網絡連接:主從服務器間需能正常通信,確保防火墻允許 MySQL 端口(默認 3306 )的流量通過。
- 數據一致性:配置主從復制前,保證主從服務器數據一致,可通過數據備份和恢復來實現。
- 日志管理:定期清理二進制日志文件,避免占用過多磁盤空間,可依據expire-logs-days和max-binlog-size配置管理。