jiansgk 2024-09-27 21:19 采纳率: 50%
浏览 6

springboot整合sharding-jdbc无法识别数据源

springboot 使用sharding-jdbc实现主从分离,无法识别到数据源,尝试过很多方式依然无法解决:例如注释掉druid-springboot的坐标,替换为druid
配置文件如下

server:
  port: 8080

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.xxx.100:3306/reggir?characterEncoding=utf-8
        username: root
        password: root123
      # 从数据源
      slave:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://192.168.xxx.200:3306/reggir?characterEncoding=utf-8
        username: root
        password: root123
    masterslave:
      # 读写分离配置
      load-balance-algorithm-type: round_robin #从库负载均衡策略;round_robin:轮询
      # 最终的数据源名称
      name: dataSource #bean的名称
      # 主库数据源名称
      master-data-source-name: master
      # 从库数据源名称列表,多个逗号分隔
      slave-data-source-names: slave
    props:
      sql:
        show: true #开启SQL显示,默认false
  main:
    allow-bean-definition-overriding: true #bean的定义覆盖配置

  data:
    redis:
      host: localhost
      port: 6379
  cache:
    redis:
      time-to-live: 1800000

mybatis-plus:
  configuration:
    #开启驼峰映射
    map-underscore-to-camel-case: true
    #开启日志
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

pom文件如下


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.3.2</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <groupId>com.itheima</groupId>
    <artifactId>reggie_take_out</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>reggir_takeout</name>
    <description>reggir_takeout</description>


    <properties>
        <java.version>17</java.version>
    </properties>

    <dependencies>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

<!--   json数据转换     -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>2.0.51</version>
        </dependency>


        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.23</version>
        </dependency>


        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
            <version>3.5.7</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.26</version>
        </dependency>

        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-cache</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.shardingsphere</groupId>
            <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
            <version>4.1.1</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

报错信息如下:

img

  • 写回答

1条回答 默认 最新

  • 一轮明月照丘壑 2024-09-27 21:20
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    根据您提供的配置和错误信息,问题可能出在数据源的配置上。从错误消息来看,应用程序无法配置数据源,因为未指定 'url' 属性,并且无法配置嵌入式数据源。此外,它也无法确定合适的驱动类。让我们来解决这个问题:

    1. 数据源URL: 请确保您的数据源URL配置正确。在您的配置文件中,主数据源和从数据源的URL看起来都是正确的,但要确保数据库服务器实际可达并且端口号正确。另外,数据库名拼写是否正确也需要检查。此外,检查是否需要使用其他JDBC驱动类名。在大多数情况下,对于MySQL数据库,com.mysql.cj.jdbc.Driver 是一个常用的驱动类名。如果您使用的是其他版本的MySQL连接器,可能需要使用不同的驱动类名。例如,旧版本的连接器可能使用 com.mysql.jdbc.Driver 作为驱动类名。
    2. 驱动程序: 您已在配置中指定了JDBC驱动类名(com.mysql.cj.jdbc.Driver),但有时可能需要在项目中显式包含正确的JDBC驱动依赖项。请检查您的 pom.xml 文件是否包含正确的MySQL连接器依赖项。如果没有,请添加以下依赖项:
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>您的MySQL连接器版本号</version> <!-- 请替换为您使用的MySQL连接器版本号 -->
    </dependency>
    

    确保版本号与您的MySQL数据库版本兼容。 3. 配置文件位置: 确保配置文件的位置正确,并且Spring Boot能够正确加载它。有时,如果配置文件位于错误的目录中或名称拼写错误,可能会导致配置无法加载。默认情况下,Spring Boot会从 src/main/resources 目录加载配置文件。如果您的配置文件位于其他位置或具有不同的名称,请确保在应用程序中正确指定了配置文件的位置或名称。 4. 激活配置: 如果您使用Spring Boot的profile功能来管理不同的环境配置(例如开发环境和生产环境),请确保已激活正确的profile。在启动应用程序时,您可以使用 --spring.profiles.active 参数来指定要激活的profile。例如:--spring.profiles.active=dev(对于开发环境)或 --spring.profiles.active=prod(对于生产环境)。如果您的数据源配置存储在特定的profile中,请确保已正确激活该profile。如果您的配置没有使用profile或者不应该依赖于任何profile,确保没有其他地方覆盖或影响数据源的配置。特别是在应用程序的代码中或其他配置文件中避免冲突的配置。最后确保没有任何自定义的配置代码干扰了正常的数据源配置过程。如果有任何自定义配置类或Java配置代码处理数据源配置,请仔细检查其是否正确配置并与ShardingSphere兼容。此外,如果使用了Spring Boot自动配置特性来处理数据源等组件的配置,确保没有意外地禁用或覆盖了这些自动配置功能。总之,请仔细检查上述所有方面以确保数据源配置正确无误并与ShardingSphere兼容。如果问题仍然存在,请提供更多的代码和配置文件细节以便进一步分析和解决问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月27日

悬赏问题

  • ¥15 IEd中开关量采样信号通道设计
  • ¥45 字符串操作——数组越界问题
  • ¥15 Loss下降到0.08时不在下降调整学习率也没用
  • ¥15 QT+FFmpeg使用GPU加速解码
  • ¥15 为什么投影机用酷喵播放电影放一段时间就播放不下去了?提示发生未知故障,有什么解决办法吗?
  • ¥15 来个会搭建付费网站的有偿
  • ¥100 有能够实现人机模式的c/c++代码,有图片背景等,能够直接进行游戏
  • ¥20 校园网认证openwrt插件
  • ¥15 以AT89C51单片机芯片为核心来制作一个简易计算器,外部由4*4矩阵键盘和一个LCD1602字符型液晶显示屏构成,内部由一块AT89C51单片机构成,通过软件编程可实现简单加减乘除。
  • ¥15 求GCMS辅导数据分析