MySQL主從復制配置(Docker容器內配置)


主從工作原理:

 

 

配置介紹:

MASTER:172.17.0.2

SLAVE:172.17.0.3

 

MASTER內數據庫:

 

僅僅同步以上兩個庫(在configerdata庫中創建了wu2表)

 

SLAVE庫:

 

空空如也

 

1、將MASTER庫的數據庫導入到SLAVE庫中

1)使用mysqldump備份MASTER庫

備份前最好將服務停止,防止有數據在設置過程中寫入

#將configerdata userdata兩個庫的結構與數據全部備份到/root/baksql.sql中
mysqldump -h 127.0.0.1 -uroot -proot1 --databases configerdata userdata > /root/baksql.sql

--all-databases    #備份所有的數據庫
--databases        #備份指定庫,多個庫用空格隔開
--database 數據庫名 表1 表2     #備份指定庫的表,多個表用空格隔開
--database 庫名 | gzip         #備份庫時進行壓縮

mysqldump -h 127.0.0.1 -uroot -proot1 --databases configerdata userdata > /root/baksql.sql

 

 

2)將導出的庫文件傳輸到SLAVE中(scp、lrzsz均可)

 

 

3)將.sql文件導入到SLAVE數據庫中

進入輸入庫,執行:

source /root/baksql.sql

 

查看SLAVE庫內有無MASTER中的表

 

ok,導入成功

 

2、修改MySQL配置文件使用bin-log進行同步

(1)一般在配置文件是/etc/my.cnf,我的是apt-get裝,所以位置不同

vim /etc/mysql/mysql.conf.d/mysqld.cnf

mysqld參數下添加:

log-bin = mysql-bin
server-id =1

replicate-do-db=configerdata    #指定同步的數據庫(若需將所有數據庫同步,則不需加此配置項)
replicate-do-db=userdata     #指定同步的數據庫
#replicate-ignore-db=mysql    此配置為指定不同步的數據庫

 

service mysql restart #重啟mysql 

 

(2)進入MASTER mysql中,創建用於SLAVE的用戶

GRANT ALL  ON *.* TO liu@172.17.0.3 IDENTIFIED BY 'liu1';    #賦予liu用戶所有數據庫所有權限
GRANT ALL PRIVILEGES ON *.* TO fan@172.17.0.3 IDENTIFIED BY 'fan1';    #在SLAVE中創建在MASTER有所有特殊權限的用戶
FLUSH PRIVILEGES; #刷新權限

 

 

 

3)前往SLAVE主機測試登錄剛剛創建的用戶

 

顯示無法連接,但是網是通的

問題在於MASTER配置文件中限制了其他主機登錄,修改以下配置重啟即可:

 

現在連接:

 

ok,連接成功

 

3、從節點配置訪問主節點的參數信息

1)首先編輯從機配置文件,添加如下配置:

server-id=2

 

service mysql restart #重啟mysql

2)賦予權限

查看主服務器的節點

show master status\G;

 

在從服務中配置:

首先關閉SLAVE線程;STOP SLAVE;

然后再執行:

CHANGE MASTER TO MASTER_HOST='172.17.0.2',MASTER_USER='fan',MASTER_PASSWORD='fan1', MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=594;

特別注意:MASTER_LOG_FILE= MASTER_LOG_POS=  必須和MASTER一致

 

 

查看SLAVE狀態,已經同步成功

 

 

 

開啟SLAVE線程:

 

 

 

4、測試數據是否同步

MASTER中添加數據

 

 

 

SLAVE庫中查有無同步

 

ok,已同步。

如有轉載請標明出處 謝謝

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM