news 2026/4/18 8:02:36

【ShardingJDBC 】【笔记】---- Sharding-JDBC 读写分离 配置 MySQL 主从

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【ShardingJDBC 】【笔记】---- Sharding-JDBC 读写分离 配置 MySQL 主从

文章目录

  • 第一步 新增 mysql 实例
  • 第二步 修改主、从库的配置文件新增内容如下
  • 第三步 创建用于主从复制的账号
  • 第四步 设置从库向主库同步数据
  • Sharding-JDBC 读写分离配置

第一步 新增 mysql 实例

复制原有 mysql 如:D:\mysql-5.7.25(作为主库) -> D:\mysql-5.7.25-s1(作为从库),并修改以下从库的 my.ini:

[mysqld]#设置3307端口 port=3307# 设置mysql的安装目录 basedir=D:\mysql‐5.7.25‐s1 # 设置mysql数据库的数据的存放目录 datadir=D:\mysql‐5.7.25‐s1\data

然后将从库安装为 windows 服务,注意配置文件位置:

D:\mysql‐5.7.25‐s1\bin>mysqld install mysqls1‐‐defaults‐file="D:\mysql‐5.7.25‐s1\my.ini"删除服务命令 sc delete 服务名称

由于从库是从主库复制过来的,因此里面的数据完全一致,可使用原来的账号、密码登录。

第二步 修改主、从库的配置文件新增内容如下

主库 my.ini

[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

从库 my.ini

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

重启主库和从库

第三步 创建用于主从复制的账号

#切换至主库bin目录,登录主库 mysql ‐h localhost ‐uroot ‐p #授权主备复制专用账号 GRANT REPLICATION SLAVE ON*.* TO 'db_sync'@'%' IDENTIFIED BY 'db_sync';#刷新权限FLUSHPRIVILEGES;#确认位点 记录下文件名以及位点 show master status;

第四步 设置从库向主库同步数据

#切换至从库bin目录,登录从库 mysql ‐h localhost ‐P3307 ‐uroot ‐p #先停止同步STOPSLAVE;#修改从库指向到主库,使用上一步记录的文件名以及位点 CHANGE MASTERTOmaster_host='localhost',master_user='db_sync',master_password='db_sync',master_log_file='mysql‐bin.000002',master_log_pos=154;#启动同步STARTSLAVE;#查看从库状态Slave_IO_RuningSlave_SQL_Runing都为Yes说明同步成功,如果不为Yes,请检查 error_log,然后 排查相关异常。 show slave status #注意 如果之前此从库已有主库指向 需要先执行以下命令清空 STOP SLAVE IO_THREAD FOR CHANNEL '';reset slave all;

Sharding-JDBC 读写分离配置

# 增加数据源s0,使用上面主从同步配置的从库。 spring.shardingsphere.datasource.names=m0,m1,m2,s0...spring.shardingsphere.datasource.s0.type=com.alibaba.druid.pool.DruidDataSourcespring.shardingsphere.datasource.s0.driver‐class‐name=com.mysql.jdbc.Driverspring.shardingsphere.datasource.s0.url=jdbc:mysql://localhost:3307/user_db?useUnicode=truespring.shardingsphere.datasource.s0.username=root spring.shardingsphere.datasource.s0.password=root....# 主库从库逻辑数据源定义 ds0为user_db spring.shardingsphere.sharding.master‐slave‐rules.ds0.master‐data‐source‐name=m0 spring.shardingsphere.sharding.master‐slave‐rules.ds0.slave‐data‐source‐names=s0 # t_user分表策略,固定分配至ds0的t_user真实表 spring.shardingsphere.sharding.tables.t_user.actual‐data‐nodes=ds0.t_user

如果文章对你有一点点帮助,欢迎【点赞、留言、+ 关注】
您的关注是我创作的动力!若有疑问/交流/需求,欢迎留言/私聊!
多一个朋友多一条路!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 6:48:17

【计算机毕业设计案例】基于springboot的个人健康管理系统基于springboot个人健康档案管理系统(程序+文档+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/16 14:16:30

【Docker】解决Docker容器时间与宿主机时间不一致的几种方法

一、介绍 由于Docker容器内的时间默认是 UTC 世界标准时间,而宿主机时间为 CST 中国标准时间(东八区,Asia/Shanghai),时间相差8小时,根本原因是时区问题。因此,需要为Docker容器配置正确的时区&…

作者头像 李华
网站建设 2026/4/18 3:24:58

直播美颜SDK怎么选?从人脸美型效果、性能与成本全面分析

在直播行业卷到“美颜都快成标配”的今天,不管你是做直播平台、社交产品,还是短视频、电商直播,选对一款直播美颜SDK,往往直接影响用户留存率和产品口碑。 问题是: 市面上的直播美颜SDK这么多,看起来功能都…

作者头像 李华
网站建设 2026/4/16 10:51:55

嵌入式系统设计师软考个人笔记<3>

1.1 嵌入式系统电源管理1.1.1 电源系统基础定义:为嵌入式设备提供稳定、合规直流电能的子系统,通常将交流市电或电池电源转换为系统所需的直流电压等级。供电类型:市电供电:通过AC-DC转换模块(如开关电源)提…

作者头像 李华
网站建设 2026/4/2 5:14:59

解码内部集成电路(IIC)与OLED屏

内部集成电路(IIC/I2C) 基本概念 英文全称Inter Integrated Circuit,简称IIC或I2C,是半双工同步串行通信接口协议1982年由飞利浦公司(现恩智浦半导体)设计推出设计初衷:为微控制器(…

作者头像 李华
网站建设 2026/4/17 8:42:33

稳定细胞系构建 | 稳定株开发服务 | 高表达克隆筛选

稳定细胞系构建是细胞生物学、分子生物学和蛋白质工程等众多科研领域中广泛采用的一项基础技术。所谓稳定细胞系,是指通过遗传整合外源基因的方式,使细胞在长期传代过程中持续稳定表达目标蛋白(或其它功能元件)的细胞系。这类细胞…

作者头像 李华