centos雙機熱備 數據庫主從相互備份(上):https://blog.csdn.net/Berzingou/article/details/82017228
相關資料網盤鏈接:https://pan.baidu.com/s/1Zgx3hRB400JFLIGHPVdtJA 密碼:gg8x
mysql互爲主從同步配置
一、遠程連接數據庫並導入sql文件
使用navicat分別遠程連接主從mysql服務器
各自創建一個名稱爲ssm的數據庫用於測試(因爲這個數據庫後面還會繼續用到 請務必保證名稱是ssm)
初始化數據 初始化完成後是這樣的:(主從數據庫初始數據請務必保持一致)
二、關閉SELINUX(兩臺服務器都要執行此操作)
vim /etc/selinux/config #配置config文件
按i進入編輯模式
#SELINUX=enforcing #註釋掉
#SELINUXTYPE=targeted #註釋掉
SELINUX=disabled #增加
reboot #重啓服務器使配置生效
查看SELinux狀態
三、配置mysql主服務器(192.168.3.13)
mysql -u root -p #登錄mysql主服務器控制檯
輸入密碼
grant all privileges on *.* to 'userbak' @'192.168.3.13' identified by '123456'; #授權用戶userbak能通過主服務器ip訪問主服務器中的mysql
grant all privileges on *.* to 'userbak' @'%' identified by '123456'; #開啓遠程連接權限
flush privileges; #刷新mysql系統權限相關表
配置測試
我們現在進入備用mysql服務器
mysql -u userbak -h 192.168.3.13 -p #在備用服務器中去連接主服務器(192.168.3.13是主服務器ip)
exit #退出mysql備用服務器控制檯(測試登錄成功後千萬千萬千萬記得立即退出來!!因爲這畢竟是主服務器的mysql!!)
切回主服務器
exit #退出mysql控制檯
cd /usr/share/mysql #進入mysql目錄
ls #查看內容
cp my-default.cnf /etc/my.cnf #將mysql目錄下面的my-default.cnf拷貝到etc下面去 並命名爲my.cnf
vim /etc/my.cnf #編輯my.cnf文件 在[mysqld]後面添加配置內容
按i進入編輯模式
配置內容如下:
server-id=1 # 設置服務器id,爲1表示主服務器,注意:如果原來的配置文件中已經有這一行,就不用再添加了。
log-bin=mysql-bin # 啓動MySQ二進制日誌系統,注意:如果原來的配置文件中已經有這一行,就不用再添加了。
binlog-do-db=ssm # 需要同步的數據庫名,如果有多個數據庫,可重複此參數,每個數據庫一行
replicate-do-db =ssm
binlog-ignore-db=mysql # 不同步mysql系統數據庫
這裏複製配置時要檢查一下 是否帶上了什麼不能識別的字符
=================================================================begin
=================================================================end
service mysql restart #重啓mysql
mysql -u root -p #進入mysql控制檯
輸入密碼
show variables like 'server_id'; #查看server_id(值應該就是我們在my.cnf中配置的1)
show master status; #查看主服務器狀態 出現以下信息
記住這裏的file值:mysql-bin.000001和position的值:120 後面會用到
四、配置mysql備用服務器(192.168.3.14)
cd /usr/share/mysql #進入mysql目錄
ls #查看內容
cp my-default.cnf /etc/my.cnf #拷貝文件到etc目錄中
vim /etc/my.cnf #編輯配置文件 在[mysqld]後面添加
按i進入編輯模式
配置內容如下:
server-id=2 # 設置服務器id,修改其值爲2,表示爲從數據庫
log-bin=mysql-bin # 啓動MySQ二進制日誌系統,注意:如果原來的配置文件中已經有這一行,就不用再添加了。
binlog-do-db=ssm # 需要同步的數據庫名,如果有多個數據庫,可重複此參數,每個數據庫一行
replicate-do-db=ssm
binlog-ignore-db=mysql # 不同步mysql系統數據庫
複製完成以後注意檢查一下!!
esc :wq退出並保存配置
service mysql restart #重啓MySQL備用服務器服務
mysql -u root -p #進入MySQL控制檯
輸入密碼
show variables like 'server_id'; #查看server-id的值,必須爲上面設置的2,否則請返回修改配置文件
stop slave; #停止slave同步進程
change master to master_host='192.168.3.13',master_user='userbak',master_password='123456',master_log_file='mysql-bin.000001' ,master_log_pos=120; #執行同步語句
#這裏的master_log_file和master_log_pos就是我們之前記錄的值
#特別的!!192.168.3.13是主服務器ip
start slave; #開啓slave同步進程
show slave status\G; #查看slave同步信息,出現以下內容
現在 mysql主服務修改數據後 備用服務器也會同步修改數據
五、主從同步配置
我們接下來要實現的是 備用mysql服務器修改數據後 mysql主服務器也會同步修改 也就是相互備份
進入備用mysql服務器 進入mysql控制檯
grant all privileges on *.* to 'userbak' @'192.168.3.14' identified by '123456';
#授權用戶userbak能通過備用服務器ip訪問備用服務器中的mysql
#192.168.3.14是備用服務器ip
grant all privileges on *.* to 'userbak' @'%' identified by '123456'; #開啓遠程連接權限
flush privileges; #刷新mysql系統權限相關表
測試在mysql主服務器上是否能連接mysql備用服務器
切到mysql主服務器
退出mysql主服務器控制檯
mysql -u userbak -h 192.168.3.14 -p #192.168.3.14是備用服務器的ip
輸入密碼
成功登錄!
exit #退出主服務器下的備用服務器的mysql控制檯 這裏特別提醒一下 測試完成後注意請立即退出(因爲這個是備用服務器的mysql)!!!!!
再次切到mysql備用服務器
在mysql控制檯中輸入
show master status;
可以看到以下內容:
記住這裏的file值:mysql-bin.000001和position的值:641 後面會用到
切換到mysql主服務器
mysql -u root -p #登錄mysql控制檯
stop slave; #先在mysql控制檯中停止slave同步
change master to master_host='192.168.3.14',master_user='userbak',master_password='123456',master_log_file='mysql-bin.000001' ,master_log_pos=641;
#執行同步語句
#這裏的master_log_file和master_log_pos就是我們之前記錄的值
#再次強調 192.168.3.14是備用服務器的ip
start slave; #重新開啓slave同步
show slave status\G; #查看slave同步信息,會出現以下內容
出現了以上信息就說明主服務器能夠同步備用服務器上的數據
再來檢查一下我們之前配置好的備用服務器能不能同步主服務器的數據
首先 我們在主服務器中執行 show master status;
我們發現 File和Position的值改變了(所以我們之前的配置要改一下)!!!! 記住這兩個值
進入備用服務器
stop slave; 停止同步線程
change master to master_host='192.168.3.13',master_user='userbak',master_password='123456',master_log_file='mysql-bin.000004' ,master_log_pos=374; #將上邊查出來的值重新執行一下
start slave; #重新開啓slave同步
show slave status\G; #查看slave同步信息,會出現以下內容
六、主從同步測試
使用navicat遠程連接兩個數據庫
修改t_user表中的數據
修改主服務器中的數據 你會發現備用服務器數據會隨之改變
反之 修改備用服務器中的數據 你會發現主服務器中的數據會隨之改變
到此 我們就實現了mysql主從服務器相互備份
centos雙機熱備 數據庫主從相互備份(上):https://blog.csdn.net/Berzingou/article/details/82017228