基于Docker的Mysql主从复制搭建
为什么基于Docker搭建?
-
资源有限
-
虚拟机搭建对机器配置有要求,并且安装mysql步骤繁琐
-
一台机器上可以运行多个Docker容器
-
Docker容器之间相互独立,有独立ip,互不冲突
-
Docker使用步骤简便,启动容器在秒级别
利用Docker搭建主从服务器
首先拉取docker镜像,我们这里使用5.7版本的mysql:
docker pull mysql:5.7
然后使用此镜像启动容器,这里需要分别启动主从两个容器
Master(主):
docker run -p 3339:3306 --name mymysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
Slave(从):
docker run -p 3340:3306 --name mymysql1 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
Master对外映射的端口是3339,Slave对外映射的端口是3340。因为docker容器是相互独立的,每个容器有其独立的ip,所以不同容器使用相同的端口并不会冲突。这里我们应该尽量使用mysql默认的3306端口,否则可能会出现无法通过ip连接docker容器内mysql的问题。
使用docker ps
命令查看正在运行的容器:
docker ps
此时可以使用Navicat等工具测试连接mysql(显示连接成功)
或者使用直接连接测试
# 测试连接
mysql -h172.20.10.2 -P3339 -uroot -p123456或./mysql -h172.20.10.2 -P3339 -uroot -p123456
配置Master(主)
通过docker exec -it 627a2368c865 /bin/bash
命令进入到Master容器内部,也可以通过docker exec -it mysql