mysql 读写分离配置 docker版

1.拉取mysql镜像

docker pull mysql:5.7

2.创建测试mysql容器

docker run -p 3307:3306 --name mysql-test -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 

3.创建本地文件夹

docker cp mysql-test:/etc/mysql/mysql.cnf /mydir/mysql-master/cnf

4.删除测试容器

docker stop mysql-test
docker rm mysql-test

5.创建master节点mysql

docker run -p 3306:3306 --name mysql-master -v /mydir/mysql-master/data:/var/lib/mysql -v /mydir/mysql-master/conf/mysql.cnf:/etc/mysql/mysql.cnf -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
#-v /mydir/mysql1/data:/var/lib/mysql 挂载数据目录
#-v /mydir/mysql1/conf/mysql.cnf:/etc/mysql/mysql.cnf 挂载配置文件

6.修改本地挂载配置文件

vim /mydir/mysql-master/cnf/mysql.cnf
#添加以下内容
[mysqld]
server-id=1
log-bin=mysql-bin
binlog-do-db=master
binlog-ignore-db=mysql

7.重启MySQL

docker restart mysql-master

8.使用连接工具连接master

SHOW MASTER STATUS;

在这里插入图片描述

9.创建从库连接的用户

CREATE USER 'admin'@'%' IDENTIFIED BY '123456'; #创建用户
GRANT ALL ON  *.* TO 'admin'@'%';	#授权

10.创建从库数据库

docker run -p 3307:3306 --name mysql-slave1 -v /mydir/mysql-slave1 /data:/var/lib/mysql -v /mydir/mysql-slave1 /conf/mysql.cnf:/etc/mysql/mysql.cnf -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

11.修改从库配置

vim /mydir/mysql-slave1/cnf/mysql.cnf
#写入以下内容
[mysqld]
server-id=2 # 同一局域网 不能相同

12.连接输入命令

STOP SLAVE;
CHANGE MASTER TO master_host = 'ip地址',
master_port=端口号,
master_user = '创建的主库用户名',
master_password = '创建的主库密码',
master_log_file = 'mysql-bin.000001', # 对应show master status 的File
master_log_pos = 154;  # 对应show master status 的position
START SLAVE;
show slave status;

在这里插入图片描述

这两个为Yes 就成功了
多个从库只需要重复操作就可以了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值