MySQL 主從復(fù)制的配置步驟包括:1. 準(zhǔn)備主從服務(wù)器環(huán)境,確保版本一致、網(wǎng)絡(luò)互通,配置不同的 server-id 并開啟二進(jìn)制日志;2. 在主庫創(chuàng)建專用復(fù)制賬戶并授權(quán);3. 使用 mysqldump 初始化從庫數(shù)據(jù)并導(dǎo)入;4. 從庫執(zhí)行 CHANGE MASTER 命令啟動復(fù)制線程并檢查狀態(tài);5. 可選設(shè)置自動故障切換,借助外部工具實現(xiàn)高可用,或手動切換主庫并調(diào)整復(fù)制關(guān)系以保障數(shù)據(jù)一致性。
MySQL 主從復(fù)制是實現(xiàn)高可用架構(gòu)的一個基礎(chǔ)手段。配置得當(dāng)?shù)脑?,可以在主庫故障時快速切換到從庫,保障服務(wù)連續(xù)性。關(guān)鍵在于確保復(fù)制鏈路穩(wěn)定、數(shù)據(jù)一致性有保障,并配合合適的監(jiān)控和切換機(jī)制。

1. 準(zhǔn)備主從服務(wù)器環(huán)境
在開始之前,你需要至少兩臺服務(wù)器:一臺作為主庫(master),另一臺或多臺作為從庫(slave)。建議這兩臺服務(wù)器的 MySQL 版本一致,操作系統(tǒng)也盡量相同,以減少兼容性問題。

- 確保網(wǎng)絡(luò)互通,主庫允許從庫訪問其3306端口
- 配置主從服務(wù)器的
server-id
不同,這是復(fù)制的基礎(chǔ)要求之一 - 開啟主庫的二進(jìn)制日志(binlog)功能,因為復(fù)制依賴于它來記錄數(shù)據(jù)變更
例如,在主庫的配置文件(如 /etc/my.cnf
)中添加:
server-id=1 log-bin=mysql-bin
從庫則設(shè)置不同的 server-id
,比如2,并且也可以開啟只讀模式來防止誤操作寫入:

server-id=2 read_only=1
修改后重啟 MySQL 服務(wù)使配置生效。
2. 創(chuàng)建專用復(fù)制賬戶
為了安全起見,不要使用 root 或其他權(quán)限過大的用戶進(jìn)行復(fù)制。應(yīng)該專門創(chuàng)建一個用于復(fù)制的賬號,并賦予 REPLICATION SLAVE
權(quán)限。
在主庫上執(zhí)行如下命令:
CREATE USER 'repl'@'從庫IP' IDENTIFIED BY '安全密碼'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'從庫IP'; FLUSH PRIVILEGES;
注意替換 從庫IP
和密碼,確保該用戶只能從指定 IP 連接上來。
3. 初始化從庫數(shù)據(jù)
要讓主從數(shù)據(jù)保持一致,必須先將主庫的數(shù)據(jù)完整導(dǎo)入到從庫中??梢允褂?mysqldump
導(dǎo)出主庫數(shù)據(jù):
mysqldump -u root -p --all-databases --master-data > dump.sql
然后將這個 dump 文件傳輸?shù)綇膸觳?dǎo)入:
mysql -u root -p < dump.sql
導(dǎo)入完成后,從庫的數(shù)據(jù)狀態(tài)就與主庫導(dǎo)出時一致了。
4. 啟動復(fù)制過程
在從庫上執(zhí)行以下 SQL 命令,連接到主庫并啟動復(fù)制線程:
CHANGE MASTER TO MASTER_HOST='主庫IP', MASTER_USER='repl', MASTER_PASSWORD='密碼', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS= 4; START SLAVE;
其中 MASTER_LOG_FILE
和 MASTER_LOG_POS
的值來自于你執(zhí)行 mysqldump
時生成的 dump 文件中的 CHANGE MASTER 語句。
可以用下面這條命令查看復(fù)制狀態(tài)是否正常:
SHOW SLAVE STATUS\G
重點看 Slave_IO_Running
和 Slave_SQL_Running
是否都為 Yes。
5. 設(shè)置自動故障切換(可選)
MySQL 自帶的復(fù)制機(jī)制本身不支持自動故障切換,需要借助外部工具或中間件來實現(xiàn),比如 MHA(Master High Availability)、Orchestrator 或者使用云廠商提供的高可用方案。
如果只是手動切換,可以在主庫宕機(jī)后:
- 查看從庫的復(fù)制狀態(tài),確認(rèn)已經(jīng)追上主庫
- 將應(yīng)用指向新的主庫(原從庫)
- 可以把舊主庫恢復(fù)后設(shè)為新主庫的從庫
這一步需要謹(jǐn)慎處理,否則容易造成數(shù)據(jù)不一致。
基本上就這些步驟。雖然配置過程不算復(fù)雜,但每個細(xì)節(jié)都很關(guān)鍵,尤其是網(wǎng)絡(luò)權(quán)限、日志位置和復(fù)制賬戶的安全性方面,稍有疏忽就可能導(dǎo)致復(fù)制失敗或安全隱患。
以上是配置MySQL復(fù)制以獲得高可用性的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費脫衣服圖片

Undresser.AI Undress
人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機(jī)

Video Face Swap
使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級代碼編輯軟件(SublimeText3)

如何在FastAPI中實現(xiàn)負(fù)載均衡和高可用性簡介:隨著互聯(lián)網(wǎng)應(yīng)用的發(fā)展,對于系統(tǒng)的負(fù)載均衡和高可用性的要求越來越高。FastAPI是一個基于Python的高性能Web框架,它提供了一種簡單而強大的方式來構(gòu)建、部署和擴(kuò)展Web應(yīng)用程序。本文將介紹如何在FastAPI中實現(xiàn)負(fù)載均衡和高可用性,并提供相應(yīng)的代碼示例。使用Nginx實現(xiàn)負(fù)載均衡Nginx是一個流行的

構(gòu)建高可用性的負(fù)載均衡系統(tǒng):NginxProxyManager的最佳實踐引言:在互聯(lián)網(wǎng)應(yīng)用的發(fā)展中,負(fù)載均衡系統(tǒng)是必不可少的組件之一。它能夠通過將請求分發(fā)到多臺服務(wù)器上,實現(xiàn)高并發(fā)、高可用性的服務(wù)。NginxProxyManager是一款常用的負(fù)載均衡軟件,本文將介紹如何使用NginxProxyManager構(gòu)建一個高可用性的負(fù)載均衡系統(tǒng),并提供

實現(xiàn)網(wǎng)站高可用性的Webman配置指南引言:在當(dāng)今數(shù)字化時代,網(wǎng)站已經(jīng)成為企業(yè)重要的商業(yè)渠道之一。為保障企業(yè)的業(yè)務(wù)連續(xù)性和用戶體驗,確保網(wǎng)站始終可用性,高可用性已經(jīng)成為一個核心需求。Webman是一個強大的Web服務(wù)器管理工具,它提供了一系列配置選項和功能,能夠幫助我們實現(xiàn)高可用性的網(wǎng)站架構(gòu)。本文將介紹一些Webman的配置指南和代碼示例,幫助您實現(xiàn)網(wǎng)站的高

Nginx負(fù)載均衡方案的高可用性和容災(zāi)方案隨著互聯(lián)網(wǎng)的迅猛發(fā)展,Web服務(wù)的高可用性已成為關(guān)鍵的需求。為了實現(xiàn)高可用性和容災(zāi)能力,Nginx一直是最常用和可靠的負(fù)載均衡器之一。在本文中,我們將介紹Nginx的高可用性和容災(zāi)方案,并提供具體的代碼示例。Nginx的高可用性主要通過使用多個服務(wù)器實現(xiàn)。Nginx作為負(fù)載均衡器,可以將流量分配到多個后端服務(wù)器上,以

隨著互聯(lián)網(wǎng)時代的到來,消息隊列系統(tǒng)變得越來越重要。它可以使不同的應(yīng)用之間實現(xiàn)異步操作、降低耦合度、提高可擴(kuò)展性,進(jìn)而提升整個系統(tǒng)的性能和用戶體驗。在消息隊列系統(tǒng)中,RabbitMQ是一個強大的開源消息隊列軟件,它支持多種消息協(xié)議、被廣泛應(yīng)用于金融交易、電子商務(wù)、在線游戲等領(lǐng)域。在實際應(yīng)用中,往往需要將RabbitMQ和其他系統(tǒng)進(jìn)行集成。本文將介紹如何使用sw

如何使用Workerman搭建高可用性負(fù)載均衡系統(tǒng),需要具體代碼示例在現(xiàn)代技術(shù)領(lǐng)域中,隨著互聯(lián)網(wǎng)的快速發(fā)展,越來越多的網(wǎng)站和應(yīng)用程序需要處理大量的并發(fā)請求。為了實現(xiàn)高可用性和高性能,負(fù)載均衡系統(tǒng)成為了必不可少的組件之一。本文將介紹如何使用PHP開源框架Workerman搭建一個高可用性的負(fù)載均衡系統(tǒng),并提供具體的代碼示例。一、Workerman簡介Worke

隨著Web應(yīng)用程序的發(fā)展,越來越多的關(guān)注點開始轉(zhuǎn)向于如何提高應(yīng)用程序的性能。而緩存的作用在于抵消高流量和繁忙負(fù)載,提高Web應(yīng)用程序的性能和可伸縮性。在分布式環(huán)境下,如何實現(xiàn)高可用性的緩存就成為了一項重要的技術(shù)。本文將介紹如何使用go-zero提供的一些工具和框架來實現(xiàn)高可用性的分布式緩存,并簡單討論下go-zero在實際應(yīng)用中的優(yōu)勢和限制。一、什么是go-

MySQL是一個非常流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它具有良好的性能和穩(wěn)定性,是眾多企業(yè)和組織廣泛使用的數(shù)據(jù)庫軟件。在MySQL中,數(shù)據(jù)復(fù)制是非常重要的特性,它可以讓數(shù)據(jù)在多個數(shù)據(jù)庫服務(wù)器之間進(jìn)行同步,保證數(shù)據(jù)的安全性和可靠性。設(shè)置MySQL數(shù)據(jù)復(fù)制的鏡像技巧是本文要介紹的主題。MySQL數(shù)據(jù)復(fù)制的基本概念在MySQL中,數(shù)據(jù)復(fù)制是指將一個MySQL實例中的數(shù)據(jù)
