1. 程式人生 > >CentOS下MYSQL資料庫的主主互備配置

CentOS下MYSQL資料庫的主主互備配置

       關於MYSQL資料庫的主主備份和主從備份,查詢了很多資料,根據大牛們的資料配置了好幾遍,終於在自己的環境中配置起來了。先前沒有配置起來的原因可能是大家的配置環境不一樣造成的,所以網上有很多資料,雖然有些大同小異,但是配置不起來。MYSQL支援單向、非同步複製,複製過程中一個伺服器充當主伺服器,而一個或多個其它伺服器充當從伺服器。主伺服器將更新寫入二進位制日誌檔案,並維護日誌檔案的一個索引以跟蹤日誌迴圈。當一個從伺服器連線到主伺服器時,它通知主伺服器從伺服器在日誌中讀取的最後一次成功更新的位置。從伺服器接收從那時起發生的任何更新,然後封鎖並等待主伺服器通知下一次更新。

       在實際專案中,兩臺分佈於異地的主機上安裝有MYSQL資料庫,兩臺伺服器互為主備,客戶要求當其中一臺機器出現故障時,另外一臺能夠接管伺服器上的應用,這就需要兩臺資料庫的資料要實時保持一致,在這裡使用MYSQL的同步功能實現雙機的同步複製。

       下面將自己環境的配置記錄下來。

一、主機環境與軟體版本:

         1、主機系統:32位Centos 6.3 版本;

              兩個虛擬機器:

              主機(master):IP地址: 192.168.31.139;

              主機(salver):IP地址: 192.168.31.137;

         2、MYSQL版本:mysql-5.5.11版;

         3、虛擬機器版本:VMware® Workstation 9.0.0 build-812388;

二、配置過程

         1、主機master與salver均關閉防火牆iptables,執行service iptables stop命令:

         2、設定SELINUX檔案的SELINUX=disabled,如圖所示:

              

         4、主機(master)配置:

              A:在/usr/local/mysql目錄下建立MYSQL複製的日誌配置檔案/usr/local/mysql/mysql-bin.log並賦予許可權以及改變檔案的所有者:

                   [[email protected] mysql] touch mysql-bin.log

                   [[email protected] mysql] chmod 755 mysql-bin.log

                   [[email protected] mysql] chown -R mysql:mysql .

配置結果如圖所示:

                  

              B:配置/etc/my.cnf檔案:

                   [[email protected] mysql] vi /etc/my.cnf

                   在檔案中新增或修改相應的配置項,如圖所示:

                   

                   重要事項說明:

log-bin = /usr/local/mysql/mysql-bin.log:bin日誌路徑

server-id = 1:伺服器ID號(系統預設,不需配置或修改)

binlog-ignore-db=mysql:忽略mysql資料庫複製

auto-increment-increment = 2:每次增長2

auto-increment-offset = 1:設定自動增長的欄位的偏移量,即初始值為1

              C:啟動並登陸MYSQL系統:

                   [[email protected] mysql] service mysql start

                   顯示:Starting MySQL.... SUCCESS!就表明啟動成功

                   [[email protected] mysql] mysql -u root -padmin

                   注:-p 表示密碼項,後面的'admin'表明root使用者的密碼是admin

                   顯示結果如圖所示:

 

                   注:如果出現如圖的SHELL介面,就表示登陸成功。

              D:在主機master上新增主機salver的同步賬號:

                   mysql> grant replication slave on *.* to'slave'@'192.168.31.137' identified by 'admin';

         5、主機(salver)配置:

              A:在/usr/local/mysql目錄下建立MYSQL複製的日誌配置檔案/usr/local/mysql/mysql-bin.log並賦予許可權以及改變檔案的所有者:

                   注:這一步驟與配置主機(master)完全一樣。

              B:配置/etc/my.cnf檔案:

                   [[email protected] mysql] vi /etc/my.cnf

                   在檔案中新增或修改相應的配置項,如圖所示:

                   重要事項說明:

server-id = 2:伺服器ID號(系統預設為1,由於伺服器ID號必須唯一,故改為2)

                         

                   重要事項說明:

log-bin = /usr/local/mysql/mysql-bin.log:bin日誌路徑

binlog-ignore-db=mysql:忽略mysql資料庫複製

auto-increment-increment = 2:每次增長2

auto-increment-offset = 2:設定自動增長的欄位的偏移量,即初始值為2

              C:啟動並登陸MYSQL系統:

                   注:這一步驟與配置主機(master)完全一樣。

              D:在主機salver上新增主機master的同步賬號:

                   mysql> grant replication slave on *.* to'slave'@'192.168.31.139' identified by 'admin';

         6、主機(master)配置:

              A:重新啟動並登陸MYSQL系統:

              B:在MYSQL的SHELL下執行如下命令:

                   mysql> stop slave;

                   mysql> change master to master_host='192.168.31.137',master_user='slave',master_password='admin';

                   mysql> start slave;

         7、主機(salver)配置:

              A:重新啟動並登陸MYSQL系統:

              B:在MYSQL的SHELL下執行如下命令:

                   mysql> stop slave;

                   mysql> change master to master_host='192.168.31.139',master_user='slave',master_password='admin';

                   mysql> start slave;

         8、分別登陸兩臺伺服器mysql後臺檢視主主備份連線狀態:

              mysql> show slave status \G;

顯示結果如圖: 

                   

              注:兩臺主機均出現如下內容,則主主配置成功:

                     Slave_IO_State: Waiting for master to send event 

                     Slave_IO_Running: Yes 

                     Slave_SQL_Running: Yes

                     如果出現Slave_IO_Running: Connecting的情況,則很可能是因為防火牆未關閉的原因。

         9、測試過程結果:

              A:重新啟動並登陸MYSQL系統:

              B:在主機(master)上的test資料庫中,建立test表,並插入測試資料,在主機(salver)上檢視是否備份成功:

              C:在主機(salver)上的test資料庫中,插入測試資料,在主機(master)上檢視是否備份成功:

              D:如果兩臺主機上都備份成功,則主主備份模式配置成功。

              E:測試如圖:

                 

                 

            主主互備模式配置完畢。

相關推薦

CentOSMYSQL資料庫的配置

       關於MYSQL資料庫的主主備份和主從備份,查詢了很多資料,根據大牛們的資料配置了好幾遍,終於在自己的環境中配置起來了。先前沒有配置起來的原因可能是大家的配置環境不一樣造成的,所以網上有很多資料,雖然有些大同小異,但是配置不起來。MYSQL支援單向、非同步複製,

MySQLMySQL資料庫主備份

序:   由於公司內部伺服器使用的是普通PC機,所有發生宕機的情況比較多。尤其是發生過幾次災難後整機需要重新安裝系統,導致此係統上的MySQL資料無法使用。所以再經過此次問題後搭建了MySQL主主備份。   0x01:環境   環境:MySQL(5.7)   系統:Windows 10(1

centosmysql資料備份到Windows系統共享

#!/bin/sh number=3 ##資料庫相關 user=xxxxx password=xxxxx123.. db=xxxfxxxx path=/data/db/dbBackup/ time=`d

mysql資料庫主同步

3臺伺服器的多主架構,3臺伺服器都可以寫入並且做到3臺伺服器的資料一致性(任意一臺伺服器做寫入操作都可以,並且每臺伺服器的資料做到完全一致),並且防止主鍵衝突.目前只有3臺MySQL伺服器,不使用生成唯一id的程式。 在3臺主伺服器上建立mysql使用者建立使用者(使用root也可以,但是不建議

CentOS7中MySQL5.7 配置

CentOS7 中 MySQL 5.7 主主互備配置 ​ 先從MySQL對資料庫複製的能力看,MySQL支援單向、非同步的複製。複製過程中一個伺服器充當主伺服器,而一個或多個其它伺服器充當從伺服器。主伺服器將更新寫入二進位制日誌檔案,並維護日誌檔

mysql 模式的效率測試

參照https://blog.csdn.net/hongguo_cheng/article/details/80293588這篇文章,搭建了一個mysql主主互備的環境。 環境資訊是:windows主機上,virtualbox安裝了兩臺虛擬機器,CentOS7    &nbs

Mysql 搭建及原理簡介

        在企業中,資料庫高可用一直是企業的重中之重,中小企業很多都是使用mysql主從方案,一主多從,讀寫分離等,但是單主存在單點故障,從庫切換成主庫需要作改動。因此,如果是雙主或者多主,就會增加mysql入口,增加高可用。不過多主需要考慮自增長ID問

MySQL資料庫主備份

參考資料 我們先以A伺服器為起點,配置它的資料庫同步到B。這就是主-從複製了。 之後再反過來做一次,就可以互相備份了。 熱備份的條件 (1) mysql的版本都要高於3.2。 (2) 兩者資料庫版本相同。 (3) 主主備份相當於在原先主從備份

docker + mysql及常見異常處理

docker + mysql 雙主互備 環境 centos7、docker 10.200.132.168 master 3307 10.200.132.168 slave 3308 我使用的是以前自帶的docker環境,mysql是

CentOSmysql數據庫data目錄遷移

-- 由於 網站 修改 itl php.ini clas sock 使用 公司新上線一個資訊網站,獨立主機,raid5,lamp架構。由於資訊網是面向小行業,初步估計一兩年內訪問量壓力不大,故,在做服務器系統搭建的時候,只是簡單分出一個獨立的data區作為數據庫和網站程序

Mysql5.7安裝配置

slave bsp 安裝步驟 remove tps mysql unity 忽略 文件 一、安裝說明 ====================================================================================

centosmysql數據遷移方法

重新安裝 步驟 數據庫恢復 basedir 第三方 datadir order mysql 正常 第一種: 原始數據庫不需要重新安裝: 默認mysql會安裝在/var/lib/mysql這裏,若將數據遷移到/data/mysql目錄下,步驟如下: 1、停止mysql服務 2

Mac環境mysql環境統一和centosmysql忘記密碼處理

round local macos oca height com 空間 鏈接 ica /1》 Mac系統本地mysql自帶的環境 a. 剛開始找不到mysql命令,原因是沒找到mysql的軟連接 默認安裝目錄 /usr/local mysql(紫色)是mysql-5.7.1

Centos找不到eth0設的解決方法

運行 ip地址 scripts drive lan get 自動生成 情況 引導 問題描述: ifconfig命令無法找到eth0設備,且/etc/sysconfig/network-scripts/中只有ifcfg-lo文件,而沒有ifcfg-eth0。 臨時

CentOsmysql-5.6.39-linux-glibc2.12-x86_64.tar.gz壓縮包的安裝

sorted sql mbo blog 密碼 回車 安裝mysql 下載安裝 window 之前寫過一篇mysql在windows下的安裝(猛擊這兒),linux下用的比較少,最近切換到linux服務器了,發行mysql安裝和windows下有所不同,只記錄壓縮包方式安裝,

Mysql5.7.22+Keepalived雙高可用集群

msu ria 自己的 進行 pos 執行 elif 通知 file DB1:192.168.254.128DB2:192.168.254.129配置前進行校時操作#安裝ntpdate工具yum install ntpdate -y#使用ntpdate校時(後面的是ntp服

Mysql+Keepalived雙高可用操作步驟詳細解析

eve 腳本 server設置 not find 實驗 本地ip help oracle 查看 mysql+keepalived雙主熱備高可用的介紹: 我們通常說的雙機熱備是指兩臺機器都在運行,但並不是兩臺機器都同時在提供服務。當提供服務的一臺出現故障的時候,另外一臺會馬上

binlog_format=ROW模式mysql表無鍵造成的從庫延遲(卡住)

osi 一個 線程 查詢日誌 事務 發現 沒有 主從架構 應該 場景: MySQL-5.6.30, 主從架構, 只讀從庫的SQL線程卡在某一個事務兩個多小時沒有動過, show processlist發現從庫當時沒有連接和慢查詢語句;show open TABLES wh

CentOSMysql密碼忘了如何重置

系統版本 [[email protected] sbin]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) Mysql版本 [[email pro

mysql資料庫主資料庫down掉後,如果進行主從切換。

mysql主從切換 在真實的生產環境中,總會有一些意外。 當企業的資料庫叢集有機器不幸down掉的時候,怎麼把從庫切換成主庫呢。 可以總結為如下步驟   一.登入從庫關閉io程序,確保relay log已被完全執行,並根據當前pos選取出下一個master。 mysql -uroot -