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

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS PostgreSQL Serverless,0.5-4RCU 50GB 3个月
推荐场景:
对影评进行热评分析
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 分库分表之基于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;

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
SQL 关系型数据库 MySQL
MyCat2介绍以及部署和读写分离/分库分表(MyCat2.0)
MyCat2介绍以及部署和读写分离/分库分表(MyCat2.0)
1015 0
|
8月前
|
关系型数据库 MySQL 数据库
使用 Docker 搭建一个“一主一从”的 MySQL 读写分离集群(超详细步骤
使用 Docker 搭建一个“一主一从”的 MySQL 读写分离集群(超详细步骤
225 0
|
8月前
|
中间件 关系型数据库 MySQL
史上最详细Docker安装Mycat中间件 | 实现主从的读写分离
史上最详细Docker安装Mycat中间件 | 实现主从的读写分离
474 2
|
8月前
|
关系型数据库 MySQL 数据库
分库分表之基于Shardingjdbc+docker+mysql主从架构实现读写分离(一)
分库分表之基于Shardingjdbc+docker+mysql主从架构实现读写分离(一)
|
NoSQL 架构师 Redis
还用单机版?教你用Docker+Redis搭建主从复制多实例
以下文章来源于爱笑的架构师 ,作者雷架 从华中科技大学硕士毕业,几年间浪迹于多个一线互联网大厂,具有多年开发实战经验。如果你热爱技术或者你不满足现状喜欢搞事情,那你不妨关注我,让我们一路同行,一起分享技术干货、交流面试技巧、吐槽职场故事。我有故事和酒,你来吗?
|
8月前
|
关系型数据库 MySQL Java
分库分表之基于Shardingjdbc+docker+mysql主从架构实现读写分离(二)
分库分表之基于Shardingjdbc+docker+mysql主从架构实现读写分离(二)
|
8月前
|
关系型数据库 MySQL Java
(详解与使用)Sharding-JDBC通过mysql主从复制来进行项目优化
(详解与使用)Sharding-JDBC通过mysql主从复制来进行项目优化
102 0
|
SQL 算法 关系型数据库
微服务轮子项目(27) -MySQL 主从复制、主从切换、主主复制
微服务轮子项目(27) -MySQL 主从复制、主从切换、主主复制
79 0
|
关系型数据库 MySQL 数据库
基于Docker从零到一实操MySql的主从复制
我们一开始介绍了如何在docker上安装与启动mysql,以及进入mysql的后台创建数据库与表等;接着我们过了一遍如何基于docker操作mysql 主从库复制。
152 1
聊聊MySQL架构演进:从主从复制到分库分表
背景 业务飞速发展导致数据规模急速膨胀,单机的数据库已经无法满足互联网业务的发展。 传统的将数据集中存储单一数据结节的方案,在容量、性能、可用性和可维护性方面已经难以满足互联网海量数据的场景。

相关产品

  • 云数据库 RDS MySQL 版