詳細解析MySQL快速建構主從複製架構

WBOY
發布: 2022-03-14 10:14:57
轉載
1495 人瀏覽過

本篇文章為大家帶來了關於mysql的相關知識,其中主要介紹了怎樣快速搭建主從複製架構的相關問題,MySQL資料庫提供的主從複製功能可以方便的實現資料在多台伺服器自動備份,實現資料庫的拓展,極大的加強了資料的安全性,希望對大家有幫助。

詳細解析MySQL快速建構主從複製架構

推薦學習:mysql教學

#1.主從複製與讀寫分開

1.1 主從複製(資料層面)

主從複製是讀寫分離的前提。 MySQL資料庫提供的主從複製功能可以方便的實作資料在多台伺服器自動備份,實現資料庫的拓展,極大的加強了資料的安全性。同時,實現主從複製之後,可以透過實現讀寫分離進一步加強資料庫的負載效能。

如圖所示就是主從複製的大致實現流程。

詳細解析MySQL快速建構主從複製架構

1.2 讀寫分離(業務層面)

讀寫分離是建立在主從複製的基礎上,只有實現了資料庫的主從複製,才能進一步的實現讀寫分離。讀寫分離可以理解為所有的查詢操作在子資料庫進行,所有的寫入操作都在主資料庫進行。當資料寫入主資料庫後,透過主從複製將資料備份到子資料庫中,確保資料的一致性。

詳細解析MySQL快速建構主從複製架構

2. 實作

我們先來了解實現主從複製的原理:

  1. 首先當主資料庫的數據發生變化後,會將變化記錄寫入binlog日誌中。
  2. slave資料庫會在一定時間內對master資料庫中的binlog日誌進行偵測,如果發生改變,則要求master日誌檔案資訊。

了解其原理之後,我們需要知道開啟主從複製的前提:

  1. master節點需要開啟binlog日誌(mysql預設不開啟binlog)

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

    • 指定master節點的ip

    • 執行master節點的使用者名稱和密碼

現在大致我們都了解了,接下來我們建立一個一主一從的資料庫模式,示範一下資料庫主從搭建的配置過程。

準備兩台CentOS伺服器,並提前安裝好mysql5.7。

2.1 開啟master伺服器的binlog日誌

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

vim /etc/my.cnf
登入後複製
登入後複製

原本文件是沒有以下內容的,需要我們自行添加。我這邊是值對myslave庫進行資料的主從複製

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 指定记录二进制日志的数据库 这两个指定可以不添加binlog_ignore_db = mysql 
#binlog_ignore_db 指定不记录二进制日志的数据库
登入後複製

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

service mysql restart
登入後複製
登入後複製

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

show variables like 'log_bin%';
登入後複製

詳細解析MySQL快速建構主從複製架構

2.2 遠端存取

#允许远程用户访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.221.131' IDENTIFIED BY '123456' WITH GRANT OPTION;
#刷新
FLUSH PRIVILEGES;
登入後複製

2.3 slave節點設定

  • #首先在master節點,透過下面的指令了解master節點的狀態,得到如下圖所示的資訊。
show master status;
登入後複製

詳細解析MySQL快速建構主從複製架構

  • 修改相關設定

    vim /etc/my.cnf
    登入後複製
    登入後複製

    新增相關資訊:

    server-id = 2  #唯一标识relay-log = slave-relay-bin
    relay-log-index = slave-relay-bin.index
    replicate-do-db=myslave #备份数据库 对应master中设置的,可以不设置replicate-ignore-db=mysql #忽略数据库
    登入後複製

    記得重新啟動服務;

    service mysql restart
    登入後複製
    登入後複製
  • 在slave節點執行下列指令。

    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;
    登入後複製
  • 查看同步狀態,得到下圖所示的狀態,表示主從同步搭建成功。可以在主庫中建立表格測試。

    show slave status\G
    登入後複製

    詳細解析MySQL快速建構主從複製架構

#推薦學習:

mysql學習教學#

以上是詳細解析MySQL快速建構主從複製架構的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:csdn.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!