mysql主从复制,读写分离配置
1导入Sharding-JDBC的maven坐标
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
<version>4.0.0-RC1</version>
</dependency>
2在配置文件中配置读写分离规则,配置允许bean定义覆盖配置项
配置项可能会爆红,但是不影响影响项目启动,是IDEA的问题
spring: shardingsphere: datasource: names: master,slave master: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://192.168.238.131:3306/reggie?serverTimezone=UTC&useSSL=false username: root password: root slave: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://192.168.238.132:3306/reggie?serverTimezone=UTC&useSSL=false username: root password: root 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 main: allow-bean-definition-overriding: true
3可能遇到的问题
- 启动时不报错,但是登陆功能报
500异常 - 查看控制台出现
SQLFeatureNotSupportedException异常
解决方案
- 修改pom.xml中druid的maven坐标为
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.20</version> </dependency>

浙公网安备 33010602011771号