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:測試如圖:
主主互備模式配置完畢。
相關推薦
CentOS下MYSQL資料庫的主主互備配置
關於MYSQL資料庫的主主備份和主從備份,查詢了很多資料,根據大牛們的資料配置了好幾遍,終於在自己的環境中配置起來了。先前沒有配置起來的原因可能是大家的配置環境不一樣造成的,所以網上有很多資料,雖然有些大同小異,但是配置不起來。MYSQL支援單向、非同步複製,
【MySQL】MySQL資料庫主主備份
序: 由於公司內部伺服器使用的是普通PC機,所有發生宕機的情況比較多。尤其是發生過幾次災難後整機需要重新安裝系統,導致此係統上的MySQL資料無法使用。所以再經過此次問題後搭建了MySQL主主備份。 0x01:環境 環境:MySQL(5.7) 系統:Windows 10(1
centos下mysql資料備份到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是
CentOS下mysql數據庫data目錄遷移
-- 由於 網站 修改 itl php.ini clas sock 使用 公司新上線一個資訊網站,獨立主機,raid5,lamp架構。由於資訊網是面向小行業,初步估計一兩年內訪問量壓力不大,故,在做服務器系統搭建的時候,只是簡單分出一個獨立的data區作為數據庫和網站程序
Mysql5.7主主互備安裝配置
slave bsp 安裝步驟 remove tps mysql unity 忽略 文件 一、安裝說明 ====================================================================================
centos下mysql數據遷移方法
重新安裝 步驟 數據庫恢復 basedir 第三方 datadir order mysql 正常 第一種: 原始數據庫不需要重新安裝: 默認mysql會安裝在/var/lib/mysql這裏,若將數據遷移到/data/mysql目錄下,步驟如下: 1、停止mysql服務 2
Mac環境下雙mysql環境統一和centos下mysql忘記密碼處理
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。 臨時
CentOs下mysql-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
CentOS下Mysql密碼忘了如何重置
系統版本 [[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 -