基于docker搭建mysql主从复制
主库
- 拉取镜像
- docker pull mysql
- 查看镜像
- docker images
- 创建主从配置文件目录
- mkdir /data/docker/mysql/{master,slave} -pv
- 配置主配置文件
- vi /data/docker/mysql/master/my.cnf
[mysqld] server-id=1 log-bin=master-bin log-bin-index=master-bin.index default-authentication-plugin=mysql_native_password
View Code
- vi /data/docker/mysql/master/my.cnf
-
创建主数据文件
-
mkdir /data/docker/mysql/master/data
-
-
启动主库实例
-
docker run -d -e MYSQL_ROOT_PASSWORD=root –name mysql-master -v /data/docker/mysql/master/data:/var/lib/mysql -v /data/docker/mysql/master/my.cnf:/etc/my.cnf -p 3316:3306 mysql
-
-
进入主库
-
先进入到容器 docker exec -it mysql-master /bin/bash
-
mysql -uroot -proot
-
-
检查配置是否成功
-
show variables like ‘%server_id%’ 得到相应的server_id表示配置成功
-
-
查看对应的同步文件
-
show master status
-
从库
- 配置从配置文件
- vi /data/docker/mysql/slave/my.cnf
[mysqld] server-id=2 skip-slave-start=true read_only=ON relay-log=relay-bin relay-log-index=relay-bin.index default-authentication-plugin=mysql_native_password
View Code
- vi /data/docker/mysql/slave/my.cnf
-
创建从数据文件
-
mkdir /data/docker/mysql/slave/data
-
-
启动从库实例
-
docker run -d -e MYSQL_ROOT_PASSWORD=root –name mysql-slave -v /data/docker/mysql/slave/data:/var/lib/mysql -v /data/docker/mysql/slave/my.cnf:/etc/my.cnf -p 3326:3306 mysql
-
-
进入主库
-
先进入到容器 docker exec -it mysql-master /bin/bash
-
mysql -uroot -proot
-
- 检查配置是否成功
- show variables like ‘%server_id%’ 得到相应的server_id表示配置成功
- 配置从库同步主库
- change master to master_host=’192.168.1.22′,master_user=’root’,master_password=’root’, master_log_file=’master-bin.000003′,master_log_pos=155,master_port=3316;
- 注意 master_log_file为主库的最新日志,master_log_pos 最后的执行点,可以通过在主库执行show master status 来查看
- 开始同步
- start slave
- 检查同步配置
- show slave status \G
- 注意 Slave_IO_Running 与 Slave_SQL_Running 的值都必须为YES,才表示状态正常。
最后
- 这是我第一次在博客园上写文章,写的不太好,不要介意!!!有时间我会写下mycat。。。。。。