当前位置:网站首页>MySQL读写分离
MySQL读写分离
2022-07-17 08:31:00 【毕竟尹稳健】
读写分离
1、MySQL主从复制
介绍:
MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定的数据库,或者特定的表。


配置主库:
第一步:修改MySQL数据库的配置文件/etc/my.cnf
log-bin=mysql-bin #[必须]启用二进制日志
server-id = 100 #[必须]服务器唯一ID
第二步:重启MySQL服务
systemctl restart mysqld
第三步:登录MySQL数据库,执行下面的SQL
-- 创建用于主从复制的用户,slave = 用户名 % = 代表所有IP都可以连接(可换成具体ip) 123456 = 密码
CREATE USER 'slave'@'%' IDENTIFIED with mysql_native_password by '1111';
-- 为该用户赋予权限
GRANT replication slave on *.* to 'slave'@'%';
-- 刷新配置
FLUSH PRIVILEGES;
-- 查看创建的用户是否存在
use mysql;
select user, host from user;
-- 查看当前binlog节点及position值
show master status;

配置从库Slave
第一步:修改MySQL数据库的配置文件
server-id = 101 #[必须]服务器唯一ID
第二步:重启MySQL服务
第三步:登录MySQL,执行下面的SQL
-- 添加主数据库信息及读取binlog的节点信息
CHANGE MASTER TO MASTER_HOST = '47.112.138.176',
MASTER_USER = 'slave',
MASTER_PASSWORD = '1111',
MASTER_LOG_FILE = 'mysql-bin.000001',
MASTER_LOG_POS = 988
-- 启动从库
START SLAVE;
-- 查看主从状态
SHOW SLAVE STATUS;
2、读写分离案例(Sharding-JDBC)
1、Sharding-JDBC介绍

2、Sharding-JDBC入门案例
1、导入依赖:
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
<version>4.0.0-RC1</version>
</dependency>
2、在配置文件中配置读写分离规则
spring:
shardingsphere:
datasource:
names:
master,slave
# 主数据源
master:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://ip/rw?serverTimezone=Asia/Shanghai
username: root
password: 1111
# 从数据源
slave:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/rw?serverTimezone=Asia/Shanghai
username: root
password: 1111
masterslave:
# 读写分离配置
load-balance-algorithm-type: round_robin
# 最终的数据源名称
name: dataSource
# 主库数据源名称
master-data-source-name: master
# 从库数据源名称列表,多个逗号分隔
slave-data-source-names: slave
props:
sql:
show: true #开启SQL显示,默认false
# 3、在配置文件中配置允许Bean定义覆盖配置项
main:
allow-bean-definition-overriding: true
3、项目实现读写分离
1、导入依赖:
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
<version>4.0.0-RC1</version>
</dependency>
2、在配置文件中配置读写分离规则
spring:
shardingsphere:
datasource:
names:
master,slave
# 主数据源
master:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://ip/reggie?serverTimezone=Asia/Shanghai
username: root
password: 1111
# 从数据源
slave:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/reggie?serverTimezone=Asia/Shanghai
username: root
password: 1111
masterslave:
# 读写分离配置
load-balance-algorithm-type: round_robin
# 最终的数据源名称
name: dataSource
# 主库数据源名称
master-data-source-name: master
# 从库数据源名称列表,多个逗号分隔
slave-data-source-names: slave
props:
sql:
show: true #开启SQL显示,默认false
# 3、在配置文件中配置允许Bean定义覆盖配置项
main:
allow-bean-definition-overriding: true
边栏推荐
- #yyds干货盘点#Cross-origin 跨域请求
- 石墨厚度测量
- Idea debug according to conditional breakpoints
- RPA相关知识点整理
- LeetCode 剑指 Offer II 041. 滑动窗口的平均值:低空间消耗解决
- 65. Restful specification
- MySQL data type
- Hcip - Comprehensive Experiment of OSPF
- New application of arm computing, illegal fishing "catch all"
- Li Kou 43 string multiplication note
猜你喜欢
随机推荐
深度学习之线性回归+基础优化
Authing 实践|制造业身份认证统一管理解决方案
百度Apoll
Example description of alternative writing of instanceof
分布式事务-最大努力通知方案
Redis overview installation
凸面镜面3D玻璃轮廓扫描
JS learning notes 06-08: traversal of arrays and four methods of arrays
Redis6 new data type - hyperloglog
Ribbon load balancing service call
力扣43字符串相乘笔记
JS学习笔记06-08:数组的遍历以及数组的四个方法
1. Flask Foundation
Nacos 新建配置管理
MySQL数据类型
Matlab imports floating-point numbers with more than 9 digits after the decimal point
Hand in hand practice a DAPP, the road to Web3.0!
TP5微信提现 商家转账到零钱(复制皆可用)
xgen 毛发guide历史被清理解决方法
图片浏览器









