共計 1972 個字符,預計需要花費 5 分鐘才能閱讀完成。
本篇內容主要講解“MySQL 如何快速搭建主從復制架構”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓丸趣 TV 小編來帶大家學習“MySQL 如何快速搭建主從復制架構”吧!
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)流程。
1.2 讀寫分離(業(yè)務層面)
讀寫分離是建立在主從復制的基礎上,只有實現(xiàn)了數(shù)據(jù)庫的主從復制,才能進一步的實現(xiàn)讀寫分離。讀寫分離可以理解為所有的查詢操作在子數(shù)據(jù)庫進行,所有的寫操作在主數(shù)據(jù)庫進行。當數(shù)據(jù)寫入主數(shù)據(jù)庫后,通過主從復制將數(shù)據(jù)備份到子數(shù)據(jù)庫中,從而確保數(shù)據(jù)的一致性。
2. 實現(xiàn)
我們先來了解一下實現(xiàn)主從復制的原理:
首先當主數(shù)據(jù)庫的數(shù)據(jù)發(fā)生變化后,會將變化記錄寫入 binlog 日志中。
slave 數(shù)據(jù)庫會在一定時間內對 master 數(shù)據(jù)庫中的 binlog 日志進行探測,如果發(fā)生改變,則請求 master 日志文件信息。
了解其原理之后,我們需要知道開啟主從復制的前提:
master 節(jié)點需要開啟 binlog 日志(mysql 默認不開啟 binlog)
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
原本文件是沒有以下內容的,需要我們自行添加。我這邊是值對 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%
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;
修改相關配置
vim /etc/my.cnf
添加相關信息:
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 如何快速搭建主從復制架構”有了更深的了解,不妨來實際操作一番吧!這里是丸趣 TV 網(wǎng)站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!