分库分表之基于Shardingjdbc+docker+mysql主从架构实现读写分离(一)

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 分库分表之基于Shardingjdbc+docker+mysql主从架构实现读写分离(一)

说明:请先自行安装好docker再来看本篇文章,本篇文章主要实现通过使用docker部署mysql实现读写分离,并连接数据库测试。第二篇将实现使用Shardingjdbc实现springboot的读写分离实现。
二:核心操作
基于Docker去创建Mysql的主从架构

#创建主从数据库文件夹

mkdir -p /usr/local/mysql/masterl/conf
mkdir -p /usr/local/mysql/masterl/data
mkdir -p /usr/local/mysql/slave1/conf
mkdir -p /usr/local/mysql/slave1/data

初始化主数据库配置文件
cd /usr/local/mysql/master1/conf
vi my.cnf

粘贴以下内容

[mysqld]
datadir = /usr/local/mysql/master1/data
character-set-server = utf8
lower-case-table-names = 1

主从复制-主机配置#主服务器一ID

server-id = 1

启用二进制日志

log-bin=mysql-bin

设logbin格式

binlog_format = STATEMENT

初始化从数据库配置文件

cd /usr/local/mysql/slave1/conf
vi my.cnf

粘贴以下内容

[mysqld]
datadir = /usr/local/mysql/slave1/data30
character-set-server = utf8
lower-case-table-names = 1

主从复制-从机配置# 从服务器一ID

server-id =2

启用中继日志

relay-log = mysql-relay

文件授权

chmod -R 777 /usr/local/mysql

Docker部署mysql8.0

拉取镜像

docker pull mysql:8.0

构建主数据库容器

docker run --name=mysql-master-1 --privileged=true -p 8808:3306 -v /usr/local/mysql/masterl/data/:/var/lib/mysql -v /usr/local/mysql/masterl/conf/my.cnf:/etc/mysql/my.cnf -v /usr/local/mysql/masterl/mysql-files/:/var/lib/mysql-files/ -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0 --lower_case_table_names=1

构建从数据库容器

docker run --name=mysql-slave-1 --privileged=true -p 8809:3306 -v /usr/local/mysql/slavel/data/:/var/lib/mysql -v /usr/local/mysql/slavel/conf/my.cnf:/etc/mysql/my.cnf -v /usr/local/mysql/slavel/mysql-files/:/var/lib/mysql-files/ -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0 --lower_case_table_names=1

编写主数据库的复制配置文件

主数据库创建用户slave并授权

创建用户,设置主从同步的账户名

当后期从节点需要用这个账号和密码登录主节点订阅binlog日志实现主从同步

create user 'qiyu-slave'@'%' IDENTIFIED WITH mysql_native_password by 'qiyu-pwd';

授权

grant replication slave on . to 'qiyu-slave'@'%';

刷新权限

flush PRIVILEGES

查询server_id

SHOW variables like 'server_id';

查询master状态

show master STATUS

重置mater的binlog位点

reset master;

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
存储 算法 关系型数据库
(二十二)全解MySQL之分库分表后带来的“副作用”一站式解决方案!
上篇《分库分表的正确姿势》中已经将分库分表的方法论全面阐述清楚了,总体看下来用一个字形容,那就是爽!尤其是分库分表技术能够让数据存储层真正成为三高架构,但前面爽是爽了,接着一起来看看分库分表后产生一系列的后患问题,注意我这里的用词,是一系列而不是几个,也就是分库分表虽然好,但你要解决的问题是海量的。
1242 4
|
机器学习/深度学习 数据可视化 算法
基于深度学习的瓶子检测软件(UI界面+YOLOv5+训练数据集)
基于深度学习的瓶子检测软件(UI界面+YOLOv5+训练数据集)
885 0
|
网络协议 大数据 网络架构
桥接模式和NET模式的区别
桥接模式和NET模式的区别
816 0
|
关系型数据库 Linux 应用服务中间件
在Linux中,什么是LAMP和LNMP堆栈?
在Linux中,什么是LAMP和LNMP堆栈?
|
cobar 关系型数据库 MySQL
使用MyCat实现MySQL主从读写分离(一)概述
【8月更文挑战第11天】MySQL读写分离通过主从复制分散负载,主库负责写操作,从库承担读查询,以复制技术确保数据一致性。此策略有效缓解锁竞争,提升查询效能并增强系统可用性。实现方式包括应用层处理,简便快捷但灵活性受限;或采用中间件如MyCAT、Vitess等,支持复杂场景但需专业团队维护。
424 0
springboot集成ElasticSearch(支持集群)
springboot集成ElasticSearch(支持集群)
1036 0
|
存储 运维 监控
|
小程序 前端开发 JavaScript
微信小程序|超市购物系统设计与实现
微信小程序|超市购物系统设计与实现
288 0
|
缓存 关系型数据库 MySQL
史上最全MySQL 大表优化方案(长文)
史上最全MySQL 大表优化方案(长文)
2263 0
|
缓存 Linux Docker
Centos安装docker
Centos安装docker
676 0

相关产品

  • 云数据库 RDS MySQL 版