您的位置:首頁 > 軟件教程 > 教程 > MySQL復制模式及配置步驟詳解

MySQL復制模式及配置步驟詳解

來源:好特整理 | 時間:2024-10-22 09:48:34 | 閱讀:57 |  標簽: S 復制 配置   | 分享到:

1、異步復制:這是MySQL默認的復制模式。在這種模式下,主庫在執(zhí)行完客戶端提交的事務后會立即將結果返回給客戶端,并不關心從庫是否已經接收并處理。這種模式的優(yōu)點是實現(xiàn)簡單,但缺點是如果主庫崩潰,已經提交的事務可能沒有傳到從庫,導致數(shù)據(jù)不一致。 2、全同步復制:在這種模式下,主庫執(zhí)行完一個事務后,需要

MySQL提供了多種復制模式,包括異步復制、全同步復制、半同步復制、增強半同步復制和組復制。每種模式都有其特點和適用場景。以下是對各種復制模式的詳細介紹:

1、異步復制:這是MySQL默認的復制模式。在這種模式下,主庫在執(zhí)行完客戶端提交的事務后會立即將結果返回給客戶端,并不關心從庫是否已經接收并處理。這種模式的優(yōu)點是實現(xiàn)簡單,但缺點是如果主庫崩潰,已經提交的事務可能沒有傳到從庫,導致數(shù)據(jù)不一致。

2、全同步復制:在這種模式下,主庫執(zhí)行完一個事務后,需要等待所有從庫都執(zhí)行了該事務才能返回給客戶端。這種模式的優(yōu)點是數(shù)據(jù)一致性高,但缺點是性能影響較大,因為需要等待所有從庫的確認。

3、半同步復制:這種模式介于異步復制和全同步復制之間。主庫在執(zhí)行完客戶端提交的事務后,會等待至少一個從庫接收到并寫入relay log中才返回給客戶端。這種模式提高了數(shù)據(jù)的安全性,但會造成一定的延遲。

4、增強半同步復制:這種模式在半同步復制的基礎上進一步增強了數(shù)據(jù)安全性。主庫將每個事務寫入binlog后,等待從庫刷新到磁盤才返回給客戶端。這種模式的優(yōu)點是進一步減少了數(shù)據(jù)丟失的風險,但缺點是可能會增加事務的延遲。

5、組復制:這種模式是一種高級的復制技術,支持多主多從架構,適用于讀寫參半的場景。它通過組內節(jié)點間的相互通信和投票機制來保證數(shù)據(jù)的一致性和高可用性。

在實際應用中,根據(jù)業(yè)務需求和性能要求選擇合適的復制模式非常重要。

接下來,我們將詳細介紹如何配置MySQL主從復制,以實現(xiàn)數(shù)據(jù)同步。

1、獲取MySQL鏡像

在node1和node2上分別拉取mysql鏡像,該鏡像mysql版本是8.4.3,執(zhí)行以下命令:

docker pull mysql:8

2、獲取默認配置文件

啟動容器,把配置文件copy到本地,(node1和node2同步操作)

# 在/opt/下創(chuàng)建一個mysql目錄
# 臨時啟動一下mysql
docker run -d \
    --name mysql-master \
    -p 3306:3306 \
    -e MYSQL_ROOT_PASSWORD=123456 \
    mysql:8
    
# 把數(shù)據(jù)和配置目錄copy到本地
node1上執(zhí)行
docker cp mysql-master:/etc/my.cnf /opt/mysql/my.cnf
node2上執(zhí)行
docker cp mysql-master:/etc/my.cnf /opt/mysql/my.cnf

3、配置啟動主庫

在node1修改主庫配置文件,編輯以下配置:

[mysqld]
#mysql 服務ID,保證整個集群環(huán)境中唯一,取值范圍:1 – 2的32次方-1,默認為1
server-id=1
#是否只讀,1 代表當前服務器只讀(不能做增刪改操作), 0代表讀寫
read-only=0
# 設置日志格式,默認值ROW。row(記錄行數(shù)據(jù))  statement(記錄sql)  mixed(混合模式)
binlog_format=STATEMENT
# 二進制日志名,默認binlog
log-bin=master_binlog
# 設置需要復制的數(shù)據(jù)庫,默認復制全部數(shù)據(jù)庫
#binlog-do-db=test
# 設置不需要復制的數(shù)據(jù)庫
# binlog-ignore-db=test

4、在node1上啟動主庫

執(zhí)行以下命令:

docker run -d \
    --name mysql-master \
    -p 3306:3306 \
    -e MYSQL_ROOT_PASSWORD=123456 \
    -v /opt/mysql/mysql_data:/var/lib/mysql \
    -v /opt/mysql/my.cnf:/etc/my.cnf \
    --restart=always \
    --privileged=true \
    mysql:8

5、創(chuàng)建主備賬號

在主庫中創(chuàng)建專門用于復制的賬戶,并授予復制所需的權限。

# 創(chuàng)建專門用于復制的賬戶
CREATE USER 'backups'@'%' IDENTIFIED BY 'backups';
# 授予此帳戶復制所需的權限
GRANT REPLICATION SLAVE ON *.* TO 'backups'@'%';

獲取復制源二進制日志坐標,要配置副本在正確的點開始復制過程,需要在二進制日志中記下源的當前坐標。要獲取源二進制日志坐標,通過使用命令行客戶端連接到源來啟動源上的會話,并通過執(zhí)行以下語句刷新所有表并阻止寫入語句。

6、配置啟動從庫

在node2上編輯從庫配置文件,并啟動從庫。

7、測試

連接主庫和從庫,創(chuàng)建數(shù)據(jù)庫表并插入數(shù)據(jù),查看從庫是否同步。

至此,主從同步已經完成。如果需要一主多從,只需要在多部署幾個從庫,按照上面從庫的部署方式就可以了。

如果感覺寫的還能看,可以關注公眾號,會將最新消息推送給你。

MySQL復制模式及配置步驟詳解

小編推薦閱讀

好特網(wǎng)發(fā)布此文僅為傳遞信息,不代表好特網(wǎng)認同期限觀點或證實其描述。

復制 1.2
復制 1.2
類型:動作冒險  運營狀態(tài):正式運營  語言: 英文   

游戲攻略

游戲禮包

游戲視頻

游戲下載

游戲活動

《復制》(Replica)是游戲商ZeroRockEntertainment旗下的一款文字冒險手游,這是一款通過手機和社交媒體

相關視頻攻略

更多

掃二維碼進入好特網(wǎng)手機版本!

掃二維碼進入好特網(wǎng)微信公眾號!

本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權,請發(fā)郵件[email protected]

湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2025 haote.com 好特網(wǎng)