问题 Spring Boot项目集成Sharding-jdbc, 配置的是单库分表,正常添加了pom、配置文件。其中sharding-sphere使用了当前最新的版本: 4.1.1
1 2 3 4 5 <dependency > <groupId > org.apache.shardingsphere</groupId > <artifactId > sharding-jdbc-spring-boot-starter</artifactId > <version > ${sharding-sphere.version}</version > </dependency >
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 spring: shardingsphere: datasource: names: master master: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://xxx:3306/xxx username: xx password: xx sharding: tables: st: key-generator: column: id type: SNOWFLAKE actual-data-nodes: master.st_$->{0..3} table-strategy: inline: sharding-column: st_id algorithm-expression: st_$->{st_id % 4}
启动后报数据源相关错误 Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver class
解决 参考网上一般的解决方案 升级POM版本 没有效果,看Issues( https://github.com/apache/shardingsphere/issues/3831 )里有提到排除相关boot-starter。
尝试将原先使用的pom
1 2 3 4 5 <dependency > <groupId > com.alibaba</groupId > <artifactId > druid-spring-boot-starter</artifactId > <version > xxx</version > </dependency >
改为
1 2 3 4 5 <dependency > <groupId > com.alibaba</groupId > <artifactId > druid</artifactId > <version > 1.2.5</version > </dependency >
成功启动。