1、基于docker部署MySQL,设置主从
本操作基于已经拉取的镜像(docker pull mysql)
创建一主一从两个数据库容器
docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql-master mysql:8.0.27
docker run -d -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql-slave1 mysql:8.0.27
进入创建的容器
docker exec -it mysql-master /bin/bash
mysql -u root -p123456
授权
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'
cd /etc/mysql/
编辑my.cnf(容器内需要下载vim apt-get update apt-get install vim)
开启binlog日志
[mysqld]
log-bin=mysql-bin
server-id=2(注意局域网内唯一)
退出容器重启
exit
docker restart mysql-master
再次进入容器
docker exec -it mysql-master /bin/bash
查看files 与 位置记录
show master status;
比如
file='mysql-bin.000001',
position=720,
退出mysql-master容器进入mysql-slave1容器
编辑my.cnf文件加上 server-id=3(注意局域网内唯一)
设置
change master to
master_host='172.17.0.3',
master_user='root',
master_log_file='mysql-bin.000001',
master_log_pos=720,
master_port=3306,
master_password='123456';
开启slave模式
start slave;
查看是否成功
show slave status \G;
ps:查看容器的ip
docker inspect --format='{{.NetworkSettings.IPAddress}}' mysql-master
主从设置成功后开始编写基于efcore的读写分离代码
本片主要是测试用,故没有分层
代码如下
https://files-cdn.cnblogs.com/files/PHBing55/WebApplication1.zip