MySQL的主從複製+雙主模式

来源:https://www.cnblogs.com/Dfengshuo/archive/2018/08/09/9451027.html
-Advertisement-
Play Games

MySQL的主從複製 部署環境: MySQL master 192.168.40.21 MySQL slave 192.168.40.22 思路: 當主MySQL上進行數據上的操作或者變化時,主MySQL上的二進位日誌文件(binary log)會隨之產生變化,這時從MySQL上開啟I/O線程和sq ...


 

MySQL的主從複製

部署環境:

MySQL master 192.168.40.21

MySQL slave  192.168.40.22

 

思路:

當主MySQL上進行數據上的操作或者變化時,主MySQL上的二進位日誌文件(binary log)會隨之產生變化,這時從MySQL上開啟I/O線程和sql線程;

I/O線程是對主MySQL上二進位日誌文件進行讀取,讀取到從MySQL的中繼日誌文件上(relay log)

sql線程是讀取和執行中繼日誌文件上數據,整過程就是實現主從複製的過程,實現後的效果是當主MySQL有變動,從的也會隨之同步變動,也可稱為主備模式

 

搭建主從:

搭建前提需要註意兩台服務上的時間問題,時間上需要同步一致。如果不一致,可以一下操作:

主MySQL上安裝NTP

 

[root@6 ~]# yum -y install ntp

[root@6 ~]# vim /etc/ntp.conf  

#手動添加

22  server 127.127.1.0
23  fudge 127.127.1.0 startum 8

重啟NTP

[root@6 ~]#chkconf ntpd on   #開機啟動

 

 在從MySQL上搭建時間同步,安裝ntpdate

 

[root@6 ~]# yum -y install ntpdate

[root@6 ~]# ntpdate 192.168.40.21

 

配置主MySQL伺服器

[root@6 ~]# cat /etc/my.cnf

#手動添加在MySQLD下

log-bin=mysql-bin
log-slave-updates=true
server-id =11

[root@6 ~]#/etc/init.d/msyql restart

#進入MySQL里,給從服務許可權

 

mysql> grant replication slave on *.*to'myslave'@'192.168.40.%'identified by '123123';

mysql> flush privileges;       #刷新授權表

mysql> show master status;   #查看當前二進位文件

 

 

配置從MySQL伺服器  

[root@root ~]# vim /etc/my.cnf

 relay-log=relay-log-bin

relay-log-index=slave-relay-bin.index
server-id =12  #id不能與主服務一樣

重新啟動MySQL並且進入

mysql> change master to

 

mysql> master_host='192.168.40.21',master_user='myslave',master_password='123123',master_log_file='mysql-bin.000036',master_log_pos=267;

mysql> start slave

 mysql> show slave status\G;

圖片上前兩行yes代表IO線程和SQL線程都沒問題,現在來測試下!

在主MySQL上創建一個www庫

現在查看從MySQL的庫是否有變化 

可以看出從MySQL已經實時更新數據了,出現了www庫!

MySQL雙主模式

搭建環境以及思路:

在上面的實驗環境的基礎上,反向搭建主從,也就是說在上一個實驗環境的基礎上在從上面做一個主,在主上做一個從,即一臺MySQL是另一臺的主也是從 ,然後再安裝keepalived進行高可用和故障切換

 

搭建過程:

在上一個案例的從上搭建一個主

其實,配置過程和之前案一樣,只不過是方向配置,過程就不寫這麼詳細了

 

修改配置文件/etc/my.cnf

#手動添加

log-bin=mysql-bin
log-slave-updates=true
server =20

重啟MySQL併進入給從服務許可權

mysql> grant replication slave on *.*to'myslave'@'192.168.40.%'identified by'123123';

mysql> flush privileges;

mysql> show master status;

 

 

 

在上個案例主上配置從

修改配置文件/etc/my.cnf

#手動添加

relay-log=relay-log-bin
relay-log-index=slave-bin.index
server-id =22

重啟服務並且登錄

mysql> change master to

mysql> master_host='192.168.40.22',master_user='myslave',master_password='123123',master_log_file='mysql-bin.000002',master_log_pos=501;

mysql> start slave

mysql> show slave status\G

 

雙主配置成功,現在需要編寫一個健康MySQL的腳本和安裝一個keepalived高可用軟體,因為之前做集群的時候已經安裝了,所以就不在安裝keepalived

腳本:

#!/bin/bash
#by:Dfengshuo
#檢測埠腳本
#檢測mysql 3306埠是否開啟,如果沒有開啟嘗試開啟
jc=`ps -C mysqld --no-header|wc -l`
if [ $jc -eq 0 ];then
/etc/init.d/mysqld restart
sleep 2
#如果mysql嘗試開啟失敗,那麼就關閉keepalived服務,進行vip飄移
jc2=`ps -C haproxy -no-header |wc -l`
if [ $jc -eq 0 ];then
/etc/init.d/keepalived stop
fi
fi

[root@root ~]# scp mysql.sh 192.168.40.22:/root    #把腳本發給192.168.40.22 root下

修改keepalived的配置文件

修改192.168.40.22上的keepalived配置文件,因剛剛把腳本發在root下了,所以不用在寫腳本了

配置完之後重啟keepalived服務查看vip是否存在

現在測試keepalived宕機後,vip是否飄移

 

由此可見,vip已經飄移到40.22上了,測試成功!!!

 

=====文中如有錯誤,歡迎指出!=====

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Windows 10以多種方式對其前代產品進行了改進,但它改變了一些用戶可能已經習慣依賴的東西。如果您是錯過桌面上“我的電腦”圖標的人之一,我們就有辦法將舊的可靠按鈕帶回來。 這個技巧不僅可以讓你更容易看到你的PC的驅動器級別,它還允許你帶回其他圖標。所以,控制面板和好系統重裝助手教你怎麼安裝win ...
  • 前言 當我們在滲透Linux主機時,反彈一個交互的shell是非常有必要的。在搜索引擎上搜索關鍵字“Linux 反彈shell”,會出現一大堆相關文章,但是其內容不但雷同,而且都僅僅是告訴我們執行這個命令就可以反彈shell了,卻沒有一篇文章介紹這些命令究竟是如何實現反彈shell的。既然大牛們懶得 ...
  • 一.鏡像下載: 根據需求下載自己需要的版本 從官網下載kali 2018.2 的安裝包:https://www.kali.org/downloads/ 二.燒錄: 這裡推薦用 win32 disk imager 嘗試了好幾款燒錄工具,這個是相對最穩定的 打開win32後 第一步 選中鏡像位置 ,第二 ...
  • 1.實驗目的 mysql伺服器作為生產環境中使用最廣泛的資料庫軟體,以其開源性,穩定性而廣泛使用,但同時由於數據存儲,讀寫頻率高,極易造成資料庫出錯,從而給企業造成不可輓回的損失,我們除了做好資料庫的備份工作外,同時,還應該解決資料庫伺服器的單點故障問題。 2.搭建環境 兩台 mysql 伺服器 1 ...
  • Windows 10包含各種通用應用程式,並且沒有簡單的方法可以將它們隱藏在新的“開始”菜單中的“所有應用程式”視圖中。您可以卸載它們,但Microsoft不允許您以通常的方式輕鬆卸載它們。 Windows 10包含各種通用應用程式,並且沒有簡單的方法可以將它們隱藏在新的“開始”菜單中的“所有應用程 ...
  • 悲觀鎖(Pessimistic Lock) 顧名思義,就是很悲觀,每次去拿數據的時候都認為別人會修改,所以每次在拿數據的時候都會上鎖,這樣別人想拿這個數據就會block直到它拿到鎖。傳統的關係型資料庫裡邊就用到了很多這種鎖機制,比如行鎖,表鎖等,讀鎖,寫鎖等,都是在做操作之前先上鎖。 樂觀鎖(Opt ...
  • 占座 ...
  • 一、聯結表 數據仍使用前文中的數據。 1、子查詢 作為子查詢的SELECT語句只能查詢單個列。企圖檢索多個列將返回錯誤。 2、創建鏈接 SELECT <select_list> FROM A LEFT JOIN B ON A.key = B.key UNION SELECT <select_list ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...