1. 程式人生 > 其它 >MySQL 5.7主從部署

MySQL 5.7主從部署

Mysql主從概念:

  • mysql的主從複製,是用來建立一個和主資料庫完全一樣的資料庫環境,從庫會同步主庫得所有資料,可輕鬆實現故障轉移。

mysql主從主要作用:

  • 實現資料備份;
  • 基於資料備份,實現故障轉移災備
  • 基於資料備份,實現讀寫分離;

常見mysql主從架構:

  • 一主一從;
  • 一主多從;
  • 互為主從;

1)一主一從

 主從工作原理:

這裡以一主一從為例: 

# 主庫

master: 192.168.1.13

#從庫

slave: 192.168.1.8

# master端配置

第一步:主資料庫開啟二進位制日誌檔案。修改庫配置檔案,在[mysqld]指令段新增以下行。

vim /etc/my.cnf      #主配檔案路徑根據實際情況修改
server-id=1              #設定主庫叢集唯一標識
log-bin=jfedu-bin        #主庫開啟二進位制檔案功能,(名稱可自定義)

 修改後重啟mysql服務。mysql會自動給我們建立二進位制檔案。

  • 檢視二進位制檔案配置是否生效
mysql
show master status;
或
show master logs;

 如圖,能看到我們配置的二進位制檔案,說明功能已經開啟了。

注意,二進位制檔名稱在你每次重啟服務或者是重新整理時,都會重新生成。

  • 檢視變數是否開啟,預設是開啟的,且必須為
    ON,值為ON表示開啟。
show variables like "%log_bin";

第二步:主資料庫授權從資料庫,授權從資料庫能夠讀取主資料庫二進位制檔案。

# 授權從庫,擁有複製許可權
grant replication slave on *.* to "root"@"192.168.1.8" identified by "123456";
flush privileges;

 說明:

replication:複製許可權,也可以是all 

slave: 表示從庫。

 *.  表示同步所有資料庫,也可以指定某一個庫。

root:使用者不需要在遠端伺服器或本機伺服器去建立,它會自動幫你建立,這個使用者僅僅是

mysql資料庫的一個認證使用者;

192.168.1.x 指定從庫伺服器能夠登陸訪問,也可以設定成某一個網段都可以訪問。

---

# slave端配置
  • 修改庫配置檔案,在[mysqld]指令段新增以下行
vim /etc/my.cnf          #主配檔案路徑根據實際情況修改
server-id=2             #設定從庫ID # 注意:這裡server-id的值可以是除1之外的任意數字,切記不能為1。

 修改後重啟mariadb服務。

  • 發請求告訴主庫要同步的認證資訊。

注意:同步主庫資料時,先將從庫salve服務關閉(關閉命令:slave stop;

Mysql關閉命令:stop slave; 反之,start slave;

Mariadb關閉命令:slave stop; 反之,slave start;

change master to master_host="192.168.1.13", master_user="root", master_password="123456", master_log_file="jfedu-bin.000005", master_log_pos=699;

 說明:

master_host="192.168.1.13", # 指定主資料庫地址

master_user="root", # 指定連線使用者

master_password="123456", # 指定連線密碼

master_log_file="jfedu-bin.000005", # 指定要連線主庫的最新的二進位制檔案,主庫二進位制檔案通過 show master status; 命令查詢。

master_log_pos=699; # 指定最新二進位制檔案的ID

發請求告訴主庫要同步的認證資訊後, 啟動從庫同步服務。

start slave;

當執行了啟動命令後,從庫就會立馬去根據指定的主庫資訊去連線主庫。

  • 檢視從庫狀態
show slave status\G;

 當看到Slave_IOSlave_SQL均為YES即說明從庫已正常開啟,且與主庫建立了連線通道。

 還可通過netstat -nltpa檢視從庫與主庫通訊埠。

這裡千萬注意由於這裡我們同步的是最新的二進位制檔案,所以在該二進位制檔案之前生成的資料庫是無法進行同步的;若要將全部資料庫同步,需先將所有資料庫匯出。

#測試驗證

  • 測試主庫新建一個數據庫,驗證從庫同步。
  •  從庫驗證:這裡可以看到,當主庫有新的資料庫產生時,從庫會及時去進行同步。

2)一主多從

3)互為主從