溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL如何快速搭建主從復制架構(gòu)

發(fā)布時間:2022-03-14 09:15:22 來源:億速云 閱讀:401 作者:iii 欄目:MySQL數(shù)據(jù)庫

本篇內(nèi)容主要講解“MySQL如何快速搭建主從復制架構(gòu)”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“MySQL如何快速搭建主從復制架構(gòu)”吧!

MySQL如何快速搭建主從復制架構(gòu)

1. 主從復制與讀寫分離

1.1 主從復制(數(shù)據(jù)層面)

主從復制是讀寫分離的前提。MySQL數(shù)據(jù)庫提供的主從復制功能可以方便的實現(xiàn)數(shù)據(jù)在多臺服務器自動備份,實現(xiàn)數(shù)據(jù)庫的拓展,極大的加強了數(shù)據(jù)的安全性。同時,實現(xiàn)主從復制之后,可以通過實現(xiàn)讀寫分離進一步加強數(shù)據(jù)庫的負載性能。

如圖所示便是主從復制的大致實現(xiàn)流程。

MySQL如何快速搭建主從復制架構(gòu)

1.2 讀寫分離(業(yè)務層面)

讀寫分離是建立在主從復制的基礎(chǔ)上,只有實現(xiàn)了數(shù)據(jù)庫的主從復制,才能進一步的實現(xiàn)讀寫分離。讀寫分離可以理解為所有的查詢操作在子數(shù)據(jù)庫進行,所有的寫操作在主數(shù)據(jù)庫進行。當數(shù)據(jù)寫入主數(shù)據(jù)庫后,通過主從復制將數(shù)據(jù)備份到子數(shù)據(jù)庫中,從而確保數(shù)據(jù)的一致性。

MySQL如何快速搭建主從復制架構(gòu)

2. 實現(xiàn)

我們先來了解一下實現(xiàn)主從復制的原理:

  1. 首先當主數(shù)據(jù)庫的數(shù)據(jù)發(fā)生變化后,會將變化記錄寫入binlog日志中。

  2. slave數(shù)據(jù)庫會在一定時間內(nèi)對master數(shù)據(jù)庫中的binlog日志進行探測,如果發(fā)生改變,則請求master日志文件信息。

了解其原理之后,我們需要知道開啟主從復制的前提:

  1. master節(jié)點需要開啟binlog日志(mysql默認不開啟binlog)

  2. slave節(jié)點 ,指定某個binlog文件,以及同步的offset

    • 指定master節(jié)點的ip

    • 執(zhí)行master節(jié)點的用戶名和密碼

現(xiàn)在大致我們都了解了,接下來我們搭建一個一主一從的數(shù)據(jù)庫模式,演示一下數(shù)據(jù)庫主從搭建的配置過程。

準備兩臺CentOS服務器,并提前安裝好mysql5.7。

2.1 開啟master服務器的binlog日志

編輯mysql的my.cnf文件:(安裝方式不同,可能文件位置不同,具體問題具體分析~)

vim /etc/my.cnf

原本文件是沒有以下內(nèi)容的,需要我們自行添加。我這邊是值對myslave庫進行數(shù)據(jù)的主從復制

server-id = 1 #server-id 服務器唯一標識log_bin = master-bin 
#log_bin 啟動MySQL二進制日志log_bin_index = master-bin.index
binlog_do_db = myslave #binlog_do_db 指定記錄二進制日志的數(shù)據(jù)庫 這兩個指定可以不添加binlog_ignore_db = mysql 
#binlog_ignore_db 指定不記錄二進制日志的數(shù)據(jù)庫

使用如下命令重啟mysql。linux版本不一樣可能命令不同。

service mysql restart

啟動成功后,我們可以通過下面的語句看到bin-log開啟情況:(直接在Navicat中查詢即可)

show variables like 'log_bin%';

MySQL如何快速搭建主從復制架構(gòu)

2.2 遠程訪問

#允許遠程用戶訪問
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.221.131' IDENTIFIED BY '123456' WITH GRANT OPTION;
#刷新
FLUSH PRIVILEGES;

2.3 slave節(jié)點配置

  • 首先在master節(jié)點,通過下面的命令了解master節(jié)點的狀態(tài),得到如下圖所示的信息。

show master status;

MySQL如何快速搭建主從復制架構(gòu)

  • 修改相關(guān)配置

    vim /etc/my.cnf

    添加相關(guān)信息:

    server-id = 2  #唯一標識relay-log = slave-relay-bin
    relay-log-index = slave-relay-bin.index
    replicate-do-db=myslave #備份數(shù)據(jù)庫 對應master中設置的,可以不設置replicate-ignore-db=mysql #忽略數(shù)據(jù)庫

    記得重啟服務;

    service mysql restart
  • 在slave節(jié)點執(zhí)行如下命令。

    change master to master_host='192.168.221.128',master_user='root',master_password='123456',master_log_file='binlog.000009',master_log_pos=2339;

    master_log_file是第一步得到的file名稱;

    master_log_pos是第一步得到的同步位置點;

  • 啟動slave同步

    start slave;
  • 查看同步狀態(tài),得到下圖所示的狀態(tài),表示主從同步搭建成功。可以在主庫中創(chuàng)建表測試。

    show slave status\G

    MySQL如何快速搭建主從復制架構(gòu)

到此,相信大家對“MySQL如何快速搭建主從復制架構(gòu)”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI