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

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

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
存储 关系型数据库 MySQL
Mysql集群
Mysql集群
106 0
|
3月前
|
存储 负载均衡 关系型数据库
MySQL集群
【8月更文挑战第16天】MySQL集群
47 5
|
5月前
|
SQL 关系型数据库 MySQL
MySQL高可用架构设计:从主从复制到分布式集群
MySQL高可用性涉及主从复制、半同步复制和Group/InnoDB Cluster。主从复制通过二进制日志同步数据,保证故障时可切换。半同步复制确保事务在至少一个从服务器确认后才提交。Group Replication是多主复制,支持自动故障切换。InnoDB Cluster是8.0的集成解决方案,简化集群管理。使用这些技术能提升数据库的稳定性和可靠性。
480 2
|
6月前
|
关系型数据库 MySQL 数据库
MySQL集群 双主架构(配置命令)
MySQL集群 双主架构(配置命令)
120 1
|
6月前
|
消息中间件 存储 关系型数据库
【微服务】mysql + elasticsearch数据双写设计与实现
【微服务】mysql + elasticsearch数据双写设计与实现
|
6月前
|
存储 分布式数据库
GaussDB分布式与单机模式的比较
【4月更文挑战第7天】GaussDB分布式与单机模式的比较
1908 5
|
6月前
|
关系型数据库 MySQL 数据库
使用 Docker 搭建一个“一主一从”的 MySQL 读写分离集群(超详细步骤
使用 Docker 搭建一个“一主一从”的 MySQL 读写分离集群(超详细步骤
177 0
|
6月前
|
中间件 关系型数据库 MySQL
史上最详细Docker安装Mycat中间件 | 实现主从的读写分离
史上最详细Docker安装Mycat中间件 | 实现主从的读写分离
398 2
|
6月前
|
关系型数据库 MySQL 数据库
分库分表之基于Shardingjdbc+docker+mysql主从架构实现读写分离(一)
分库分表之基于Shardingjdbc+docker+mysql主从架构实现读写分离(一)
|
canal 存储 NoSQL
mysql进阶:canal搭建主从|集群架构
之前我们讲解过canal的各种应用,但是对于生产环境来讲,服务高可用是必须保证的。因此canal单节点是不能满足我们的需求的。就需要搭建canal集群。
999 2
mysql进阶:canal搭建主从|集群架构

相关产品

  • 云数据库 RDS MySQL 版