基于docker容器的MySQL主从设置及efcore读写分离

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

posted @ 2022-11-15 23:13  p55  阅读(100)  评论(0)    收藏  举报