docker运行mysql主从备份,读写分离

来源:互联网 发布:ppt mac版下载 编辑:程序博客网 时间:2024/06/06 03:42

1)从Docker官方下拉MySQL的image
打开https://hub.docker.com/
搜索mysql
这里写图片描述
在docker中运行 默认tag为latest
docker pull mysql/mysql-server
也可以指定mysql版本
docker pull mysql/mysql-server:5.7

2)设置目录
为了使MySql的数据保持在宿主机上,我们先建立几个目录。
mkdir -pv /mysql/data
建立主服务器的配置目录
mkdir -pv /mysql/101
建立从服务器的配置目录
mkdir -pv /mysql/102

3)设置主从服务器配置
vi /mysql/101/101.cnf

[mysqld]log-bin=mysql-binserver-id=101

vi /mysql/102/102.cnf

[mysqld]log-bin=mysql-binserver-id=102

3)创建主从服务器容器

docker create --name mysqlsrv101 -v /home/docker/mysql/data/mysql101:/var/lib/mysql -v /home/docker/mysql/101:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 mysql:5.7docker create --name mysqlsrv102 -v /home/docker/mysql/data/mysql102:/var/lib/mysql -v /home/docker/mysql/102:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -p 3316:3306 mysql:5.7

启动容器
docker start mysqlsrv101
docker start mysqlsrv102
这里写图片描述

4)登录主服务器的mysql,查询master的状态
这里写图片描述

主库创建用户

SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));GRANT REPLICATION SLAVE ON *.* to 'backup'@'%' identified by '123456';

5)登录从服务器的mysql,设置与主服务器相关的配置参数

SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));change master to master_host='192.168.56.101',master_user='backup',master_password='123456',master_log_file='mysql-bin.000003',master_log_pos=2500;master_host为docker的地址不能写127.0.0.1master_user是在主库创建的用户master_log_pos是主库show master status;查询出的Position

启动服务

start slave;

查看服务状态

show slave status;

这里写图片描述
Waiting for master to send event 就是成功了
Connecting to master 多半是连接不通

之后主库的修改都能同步到从库了

0 0
原创粉丝点击