最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

CentOS 7搭建MySQL主從復(fù)制集群的全過(guò)程

 更新時(shí)間:2026年05月22日 09:19:59   作者:身如柳絮隨風(fēng)揚(yáng)  
在實(shí)際生產(chǎn)環(huán)境中,單個(gè) MySQL 實(shí)例存在單點(diǎn)故障和性能瓶頸,本文將以 CentOS 7 為例,手把手教你搭建一套標(biāo)準(zhǔn)的 MySQL 主從復(fù)制集群(Master-Slave Replication),實(shí)現(xiàn)讀寫分離與數(shù)據(jù)熱備,需要的朋友可以參考下

導(dǎo)讀:在實(shí)際生產(chǎn)環(huán)境中,單個(gè) MySQL 實(shí)例存在單點(diǎn)故障和性能瓶頸。本文將以 CentOS 7 為例,手把手教你搭建一套標(biāo)準(zhǔn)的 MySQL 主從復(fù)制集群(Master-Slave Replication),實(shí)現(xiàn)讀寫分離與數(shù)據(jù)熱備。全文包含環(huán)境準(zhǔn)備、安裝配置、主從搭建、驗(yàn)證優(yōu)化等完整步驟,并輔以流程圖與操作示意圖,助你快速落地高可用架構(gòu)。

1. 集群架構(gòu)概覽

MySQL 主從復(fù)制是一種異步復(fù)制機(jī)制,主庫(kù)(Master)記錄所有寫操作到二進(jìn)制日志(binlog),從庫(kù)(Slave)通過(guò) I/O 線程拉取日志并重放,從而實(shí)現(xiàn)數(shù)據(jù)同步。

架構(gòu)優(yōu)勢(shì)

  • 讀寫分離,提升讀并發(fā)能力
  • 數(shù)據(jù)實(shí)時(shí)備份,主庫(kù)故障可快速切換
  • 支持在線備份(從庫(kù)備份不影響主庫(kù))

2. 環(huán)境準(zhǔn)備

主機(jī)名IP 地址角色操作系統(tǒng)
db-master192.168.1.10MasterCentOS 7.9
db-slave1192.168.1.11SlaveCentOS 7.9

注意:所有節(jié)點(diǎn)需關(guān)閉防火墻或開放 3306 端口,并配置好主機(jī)名解析(/etc/hosts)。

3. 安裝 MySQL(使用 Yum 源,避免編譯)

傳統(tǒng)編譯方式(./configure && make && make install)耗時(shí)且易出錯(cuò),強(qiáng)烈推薦使用官方 Yum 源。

3.1 添加 MySQL Yum 源

在兩臺(tái)節(jié)點(diǎn)上分別執(zhí)行:

# 下載 MySQL 8.0 官方源(也可選擇 5.7)
wget https://repo.mysql.com//mysql80-community-release-el7-11.noarch.rpm
rpm -ivh mysql80-community-release-el7-11.noarch.rpm
# 更新 yum 緩存
yum clean all
yum makecache

3.2 安裝 MySQL Server

yum install -y mysql-community-server

3.3 啟動(dòng)并初始化

# 啟動(dòng) MySQL 服務(wù)
systemctl start mysqld
systemctl enable mysqld
# 查看臨時(shí)密碼(MySQL 8.0 默認(rèn)生成)
grep 'temporary password' /var/log/mysqld.log

輸出示例:2025-05-22T06:35:12.123456Z 1 [Note] A temporary password is generated for root@localhost: >kL9#xW?rQ2i

3.4 安全配置(修改密碼)

mysql -uroot -p
# 輸入臨時(shí)密碼后執(zhí)行:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourStrongPwd123!';
FLUSH PRIVILEGES;

密碼強(qiáng)度要求:至少 8 位,包含大小寫字母、數(shù)字和特殊字符。

4. 配置主從復(fù)制

4.1 主庫(kù)配置(Master)

編輯 /etc/my.cnf,在 [mysqld] 段添加以下內(nèi)容:

[mysqld]
# 服務(wù)器 ID(主從各節(jié)點(diǎn)必須唯一)
server-id = 1
# 開啟二進(jìn)制日志
log-bin = mysql-bin
# 需要復(fù)制的數(shù)據(jù)庫(kù)(可選,默認(rèn)所有)
# binlog-do-db = exampledb
# 忽略復(fù)制的數(shù)據(jù)庫(kù)
# binlog-ignore-db = mysql
# 二進(jìn)制日志格式(推薦 ROW)
binlog_format = ROW
# 確保行鏡像完整
binlog_row_image = FULL
# 過(guò)期日志清理(保留 7 天)
expire_logs_days = 7

重啟主庫(kù):

systemctl restart mysqld

登錄主庫(kù),創(chuàng)建復(fù)制專用用戶:

CREATE USER 'replica'@'%' IDENTIFIED BY 'ReplicaPass123!';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%';
FLUSH PRIVILEGES;

查看主庫(kù)狀態(tài)(記錄 File 和 Position):

SHOW MASTER STATUS;

輸出示例:

+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      157 |              |                  |
+------------------+----------+--------------+------------------+

4.2 從庫(kù)配置(Slave)

編輯 /etc/my.cnf

[mysqld]
server-id = 2
# 開啟中繼日志
relay-log = mysql-relay-bin
# 只讀模式(可選)
read_only = 1
# 禁止從庫(kù)執(zhí)行寫操作(超級(jí)用戶除外)
super_read_only = 1

重啟從庫(kù):

systemctl restart mysqld

在從庫(kù)上執(zhí)行同步配置(替換 MASTER_LOG_FILEMASTER_LOG_POS 為主庫(kù)查詢到的值):

CHANGE MASTER TO
  MASTER_HOST = '192.168.1.10',
  MASTER_USER = 'replica',
  MASTER_PASSWORD = 'ReplicaPass123!',
  MASTER_LOG_FILE = 'mysql-bin.000001',
  MASTER_LOG_POS = 157;

啟動(dòng)從庫(kù)復(fù)制線程:

START SLAVE;

檢查同步狀態(tài):

SHOW SLAVE STATUS\G

重點(diǎn)關(guān)注以下兩個(gè)字段應(yīng)為 Yes

  • Slave_IO_Running: Yes
  • Slave_SQL_Running: Yes

5. 驗(yàn)證主從復(fù)制

5.1 在主庫(kù)創(chuàng)建測(cè)試數(shù)據(jù)

CREATE DATABASE testdb;
USE testdb;
CREATE TABLE t1 (id INT PRIMARY KEY, name VARCHAR(20));
INSERT INTO t1 VALUES (1, 'Master Data');

5.2 在從庫(kù)查詢

USE testdb;
SELECT * FROM t1;

如果能看到相同數(shù)據(jù),說(shuō)明主從同步成功。

6. 常見問題與排障

問題現(xiàn)象可能原因解決方法
Slave_IO_Running: Connecting網(wǎng)絡(luò)不通 / 用戶權(quán)限錯(cuò)誤檢查防火墻、MySQL 端口、復(fù)制用戶權(quán)限
Slave_SQL_Running: NoSQL 語(yǔ)句執(zhí)行沖突(如主鍵重復(fù))查看 Last_Error 字段,跳過(guò)或修復(fù)數(shù)據(jù)
主從延遲大從庫(kù)硬件差 / 大事務(wù)開啟并行復(fù)制(slave_parallel_workers

跳過(guò)錯(cuò)誤示例(謹(jǐn)慎使用):

STOP SLAVE;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
START SLAVE;

7. 操作流程圖

8. 高可用延伸:MHA / InnoDB Cluster

主從復(fù)制雖然實(shí)現(xiàn)了數(shù)據(jù)同步,但故障轉(zhuǎn)移仍需人工介入。生產(chǎn)環(huán)境可考慮:

  • MHA(Master High Availability):自動(dòng)監(jiān)控并切換主庫(kù)。
  • MySQL Group Replication(MGR):內(nèi)置的分布式復(fù)制機(jī)制,提供強(qiáng)一致性。
  • MySQL InnoDB Cluster:基于 MGR + MySQL Router 的官方高可用方案。

后續(xù)文章將詳細(xì)講解這些高級(jí)架構(gòu)。

9. 總結(jié)

本文摒棄了過(guò)時(shí)的源碼編譯方式,采用官方 Yum 源在 CentOS 7 上快速搭建 MySQL 主從復(fù)制集群,并提供了完整的驗(yàn)證步驟與排障指南。通過(guò)該架構(gòu),你可以輕松實(shí)現(xiàn)讀寫分離和數(shù)據(jù)備份,為業(yè)務(wù)系統(tǒng)提供更穩(wěn)定的數(shù)據(jù)庫(kù)服務(wù)。

關(guān)鍵點(diǎn)回顧

  • ? 主從核心:二進(jìn)制日志(binlog) + 中繼日志(relay log)
  • ? 必須配置唯一的 server-id
  • ? 從庫(kù) read_only 防止誤寫
  • ? 定期監(jiān)控 SHOW SLAVE STATUS

以上就是CentOS 7搭建MySQL主從復(fù)制集群的全過(guò)程的詳細(xì)內(nèi)容,更多關(guān)于CentOS 7搭建MySQL主從復(fù)制集群的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

个旧市| 孝感市| 汝阳县| 岳阳县| 尼勒克县| 绥芬河市| 青龙| 涞水县| 虎林市| 东辽县| 三原县| 吉隆县| 石林| 嵊泗县| 千阳县| 怀来县| 昌平区| 望奎县| 河南省| 朝阳市| 昔阳县| 江门市| 碌曲县| 甘南县| 临城县| 五大连池市| 塔河县| 新化县| 象山县| 佳木斯市| 体育| 视频| 萝北县| 安溪县| 保定市| 临泉县| 普陀区| 湟中县| 梧州市| 阳春市| 天长市|