1. 程式人生 > >MySql 配置主從伺服器、配置主主伺服器

MySql 配置主從伺服器、配置主主伺服器

1、準備工作:
阿里雲的centos

兩臺伺服器:(mysql版本儘量保持一致,主伺服器的版本不能高於從伺服器)
主伺服器:ip1;
從伺服器:ip2;
待同步的資料庫:slaveDB;
同步主從資料庫資料,保持主從資料一致!

需要注意的是!!!
線上的專案匯出資料的時候,保證主庫上鎖,等slave匯入、slave start之後在解鎖;
slave重啟的時候也一樣,重啟之前,主庫上鎖,重啟完畢,解鎖;

主庫表鎖!

flush tables with read lock

主庫解鎖!

unlock tables

2、配置主伺服器:

2.1、修改mysql配置檔案

vim /etc/my.conf

Server-id = 1  #這是資料庫ID,此ID是唯一的,主庫預設為1,其他從庫以此ID進行遞增,ID值不能重複,否則會同步出錯;
log-bin = mysql-bin  #二進位制日誌檔案,此項為必填項,否則不能同步資料;
binlog-do-db = slaveDB  #需要同步的資料庫,如果需要同步多個數據庫;
則繼續新增此項。
# binlog-do-db = slaveDB1
# binlog-do-db = slaveDB2
binlog-ignore-db = mysql 不需要同步的資料庫;

2.2、儲存退出!重啟mysql服務,使更改生效!

service mysql restart

校驗結果,如下圖:
這裡寫圖片描述

2.3、重要!!!
2.3.1、記錄:
mysql-bin.000013(二進位制檔案) 和 940(pos)

create user slaveUser 
grant replication slave on *.* to 'slaveUser'@'ip2' identified by 'slaveUserPwd'

3、配置從伺服器:

3.1、修改mysql配置檔案

vim /etc/my.conf

server-id=2    #預設是1改成2
log-bin=mysql-bin    #這行本身有
replicate-do
-db=slaveDB #需要同步的資料庫 replicate-ignore-db=mysql #不同步系統資料庫 read_only #設只讀許可權

3.2、儲存退出!重啟MySql使更改生效!

service mysql restart

校驗結果
這裡寫圖片描述

3.3、修改slave引數:

slave stop;

change master to master_host='ip1',master_user='slaveUser',master_password='slavePwd',master_log_file='mysql-bin.000013' ,master_log_pos=940
# 注:master_log_file=上面提到的二進位制檔案;master_log_pos=上面提到的pos 

slave start;

校驗結果:
如下圖,若出現兩個 yes ,則配置成功!

這裡寫圖片描述

可以測試在主庫建立一張表,登入從庫看看是否有更新。

至此主從配置完畢!
配置主主雙向伺服器就簡單了!

4、主主雙向伺服器

4.1、在從伺服器,重複上面2.3的 操作;
4.2,在主伺服器,重複上面3.3的操作即可。

5、常見問題:

5.1、若是slave status 裡面有報錯,手動解決之後,執行如下命令即可!

mysql> slave stop;
mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER =1;
mysql> slave start;