docker中配置主從


首先拉取docker鏡像,我們這里使用5.7.24版本的mysql:

docker  image  pull  mysql:5.7.24

 

!注意 當你遇到報錯 重新配置時 為避免端口占用  建議先把原來安裝的移除重新配置容器

開啟的容器不能被移除 所以先停止  docker stop 名稱 

在使用 docker rm 命令來刪除不需要的容器

 

然后使用此鏡像啟動容器,這里需要分別啟動主從兩個容器

Master(主):

docker run -p 3339:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.24

Slave(從):

docker run -p 3340:3306 --name mysql2 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.24

 

查看當前所有容器  docker ps -a

 

 

 

通過docker exec -it mysql1 /bin/bash命令進入主容器內部。

 

 

 

 

在容器內安裝 vim   首先 執行apt-get update,然后再次執行apt-get install vim即可成功安裝vim

 

 

 

 在vim內編輯  vim /etc/mysql/my.cnf

 

 

 添加以下代碼

 

 

 

配置完成之后,需要重啟mysql服務使配置生效。使用service mysql restart完成重啟。

重啟mysql服務時會使得docker容器停止,我們還需要docker start mysql1啟動容器。

 

 

 拉取容器   docker exec -it mysql1 /bin/bash  然后進入 mysql 

 

 

 

 

Master數據庫創建數據同步用戶,

授予用戶 slave REPLICATION SLAVE權限和REPLICATION CLIENT權限,用於在主從庫之間同步數據。

CREATE USER 'slave'@'%' IDENTIFIED BY '123456';

GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';

 

 

 

執行show master status;  

File和Position字段的值后面將會用到

 

 

 

 

 

 然后退出mysql   \q 退出該容器 exit

 

 

 

通過 docker inspect --format='{{.NetworkSettings.IPAddress}}' mysql1   查詢容器的ip

 

 

 

 

 

開始配置從 

通過docker exec -it mysql2 /bin/bash命令進入從容器內部。

 

在容器內安裝 vim   首先 執行apt-get update,然后再次執行apt-get install vim即可成功安裝vim

 

 

 在vim內編輯  vim /etc/mysql/my.cnf

 添加以下代碼

 

 

 

配置完成之后,需要重啟mysql服務使配置生效。使用service mysql restart完成重啟。

重啟mysql服務時會使得docker容器停止,我們還需要docker start mysql2啟動從容器。

 拉取容器   docker exec -it mysql2 /bin/bash  然后進入 mysql

 

執行 

change master to master_host='172.18.0.2', master_user='slave', master_password='123456', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos=617, master_connect_retry=30;

 

 

 執行 start slave;

 

查看 show slave status \G;   出現兩個yes即可成功

 


免責聲明!

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



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