基於Docker容器中Mysql主從複製搭建

1.使用 docker search mysql 命令來查看可用版本:

$ docker search mysql

2.使用 docker pull mysql:5.7 命令來拉取可用版本:

docker pull mysql:5.7

3.使用 docker images 命令來查看下載的鏡像:

$ docker images

4.採用掛載方式運行容器

    master 主

docker run -p 3307:3306 --name mastermysql -e MYSQL_ROOT_PASSWORD=123456 -v /Users/jiajie/dockerapp/mysql/master/mysql/my.cnf:/etc/mysql/my.cnf -d mysql:5.7

    slave 從

docker run -p 3308:3306 --name slavemysql -e MYSQL_ROOT_PASSWORD=123456 -v /Users/jiajie/dockerapp/mysql/slave/mysql/my.cnf:/etc/mysql/my.cnf -d mysql:5.7

運行結果

4.配置主從複製

進入本地掛載文件

修改增加 vi /master/my.cnf

[mysqld]
## 同一局域網內注意要唯一
server-id=100  
## 開啓二進制日誌功能,可以隨便取(關鍵)
log-bin=mysql-bin

修改增加 vi /slave/my.cnf

[mysqld]
## 設置從服務器server_id,注意要唯一
server-id=101
## 日誌文件同步方式
log-bin=mysql-bin         
## 開啓二進制日誌功能,以備Slave作爲其它Slave的Master時使用
##log-bin=mysql-slave-bin
## relay_log配置中繼日誌
##relay_log=edu-mysql-relay-bin
#同步數據庫
binlog_do_db=test_db

4.重啓

docker stop 121ba927ad4c
docker stop 138c072ab751
docker start 121ba927ad4c
docker start 138c072ab751

5.驗證 

master

#查詢配置的server_id
SHOW VARIABLES LIKE '%server_id%';

#查詢主的二進制執行文件
SHOW master status;

進入slave容器中

 docker exec -it 121ba927ad4c /bin/bash 

 

#進入mysql mysq -uroot -p
mysql> change master to master_host='172.17.0.2', master_user='root', master_password='123456', master_port=3306, master_log_file='mysql-bin.000003', master_log_pos= 345
#開始同步
mysql> start slave
檢查從服務器複製功能狀態
SHOW SLAVE STATUS



創建test_db 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章