隐藏页面特效

用docker配置mysql主从复制

1|0使用docker配置mysql读写分离


1|1读写分离概述


  1. 双机热备功能,主数据库提供增删改操作,从数据库提供查操作。写数据操作比较耗时而读操作不耗时。很多情况下数据库更新少而查询多,因此可以配置多个从库查询缓解查询的压力

  2. 主从复制功能是mysql提供的(和shardingjdbc没有关系),从库可以监听主库的日志完成数据同步

  3. shardingjdbc功能:

    通过sql语义分析实现读写分离,例如把增删改路由到主数据库,查路由到从数据库

1|2安装和启动mysql


首先运行以下命令拉去MySQL镜像

docker pull mysql:latest

运行mysql(由于要配置读写分离启动两个镜像)分别启动到3306和3307两个端口

docker run --name mysql01 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql
docker run --name mysql02 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql

此时需要配置服务器的安全组,另外需要配置可通过密码访问的ip,否则无法远程连接

首先进入容器

docker exec -it mysql01 bash

登录mysql

mysql -uroot -p
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
FLUSH PRIVILEGES;

此步骤为root用户提供远程访问的权利

1|3配置主从


修改mysql配置文件

进入mysql容器,进入配置文件目录

cd /etc/mysql
vim my.conf

如果vim没有安装则先安装vim

apt-get update vim
apt-get install vim

对主机添加如下配置:

[mysqld]
#开启日志
log‐bin = mysql‐bin
#设置服务id,主从不能一致
server‐id = 1
#设置需要同步的数据库
binlog‐do‐db=user_db
#屏蔽系统库同步
binlog‐ignore‐db=mysql
binlog‐ignore‐db=information_schema
binlog‐ignore‐db=performance_schema

对从库添加如下配置:

#开启日志
log‐bin = mysql‐bin
#设置服务id,主从不能一致
server‐id = 2
#设置需要同步的数据库
replicate_wild_do_table=user_db.%
#屏蔽系统库同步
replicate_wild_ignore_table=mysql.%

在主库创建用于主从账号

CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';

启动主从复制

首先查看主库的文件名和位点

show master status;

此步骤需要记录下显示的File和Position

然后进入从库,启动

CHANGE MASTER TO MASTER_HOST='1.15.113.171', MASTER_USER='slave', MASTER_PASSWORD='123456', MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=939 , MASTER_CONNECT_RETRY=30;
START SLAVE;
SHOW SLAVE STATUS;
STOP SLAVE;

要注意由于是docker中启动,host要填写公网ip,填写localhost是访问不到的,

MASTER_LOG_FILE和MASTER_LOG_POS填写上一步查询到的

运行SHOW SLAVE STATUS后观察Slave_SQL_Running和Replicate_Do_DB是否都是YES,如果是则说明大功告成了

测试

创建一个库,添加一条数据,看看有没有


__EOF__

本文作者秋雨清笛
本文链接https://www.cnblogs.com/PanYuDi/p/14866822.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   秋雨清笛  阅读(112)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示