springboot 配置多源数据库问题。
测试了一下springboot配置多源数据库,mysql和postgresql,yml配置如下:
spring: datasource: dynamic: primary: mysql strict: false datasource: mysql: driver-class-name: com.mysql.cj.jdbc.Driver username: root password: root url: jdbc:mysql://*.*.*.*:3306/student?allowPublicKeyRetrieval=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT postgresql: url: jdbc:postgresql://localhost:5432/postgres username: postgres password: weixj5217 driverClassName: org.postgresql.Driver
运行程序,出现如下错误:
……
9:30:59:048] [INFO] - org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.prepareWebApplicationContext(ServletWebServerApplicationContext.java:292) - Root WebApplicationContext: initialization completed in 1080 ms
[19:30:59:138] [INFO] - com.zaxxer.hikari.HikariDataSource.(HikariDataSource.java:80) - mysql - Starting...
[19:31:21:237] [ERROR] - com.zaxxer.hikari.pool.HikariPool.throwPoolInitializationException(HikariPool.java:594) - mysql - Exception during pool initialization.
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174) ~[mysql-connector-java-8.0.29.jar:8.0.29]
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64) ~[mysql-connector-java-8.0.29.jar:8.0.29]
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828) ~[mysql-connector-java-8.0.29.jar:8.0.29]
at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:448) ~[mysql-connector-java-8.0.29.jar:8.0.29]
……
从错误中看,好像mysql启动错误。
说明一下:
单独连接mysql数据库(不是多源数据库),程序正常,不会出现上面的错误。
多次修改yml配置,还是不行。
先检查有没有依赖
<dependency> <groupId>com.baomidou</groupId> <artifactId>dynamic-datasource-spring-boot-starter</artifactId> </dependency>
有的话需要贴完整错误信息
从你提供的信息来看,错误似乎是在尝试连接 MySQL 数据库时出现的。CommunicationsException: Communications link failure
通常表示程序无法与数据库建立连接。以下是一些可能的原因和解决方案:
jdbc:mysql://<hostname>:<port>/<database-name>
。从你的配置中看,URL 是正确的,但是还是检查一下 <hostname>
、<port>
和 <database-name>
是否正确。com.mysql.cj.jdbc.Driver
。characterEncoding=utf-8
和 serverTimezone=GMT
。请确认 MySQL 服务器的时区设置是否与你的应用一致。如果不一致,可能会出现连接错误。请按照上述步骤进行检查和调试,如果问题依然存在,欢迎你提供更多的信息以便我们进一步排查。
本文向大家介绍springboot + mybatis配置多数据源示例,包括了springboot + mybatis配置多数据源示例的使用技巧和注意事项,需要的朋友参考一下 在实际开发中,我们一个项目可能会用到多个数据库,通常一个数据库对应一个数据源。 代码结构: 简要原理: 1)DatabaseType列出所有的数据源的key---key 2)DatabaseContextHolder是一个线
本文向大家介绍springboot v2.0.3版本多数据源配置方法,包括了springboot v2.0.3版本多数据源配置方法的使用技巧和注意事项,需要的朋友参考一下 本篇分享的是springboot多数据源配置,在从springboot v1.5版本升级到v2.0.3时,发现之前写的多数据源的方式不可用了,捕获错误信息如: 异常:jdbcUrl is required with driver
本文向大家介绍SpringBoot快速配置数据源的方法,包括了SpringBoot快速配置数据源的方法的使用技巧和注意事项,需要的朋友参考一下 SpringBoot如何快速配置数据源;有如下两种方式: 通过spring-boot-starter-jdbc快速配置数据源 自定义数据源DataSource 首先我们需要明确数据源DataSource有什么作用: 通过DataSource可以获取数据库连
我刚开始使用springboot,我一直在尝试用它和spring security来配置一个项目,但不幸的是,我无法运行它。我得到了下一个错误: 嵌套的异常是org。springframework。靴子自动配置。jdbc。DataSourceProperties$DataSourceBeanCreationException:未能确定合适的驱动程序类 应用程序无法启动 描述: 配置DataSour
我正在尝试使用两个数据源与我的SpringBoot应用程序,但无法获得第二个数据源自动连接。我尝试过很多事情,但这是我最接近的一次: 我的Yaml文件: 这是我到目前为止最接近的一次。我之所以说它是最接近的,是因为如果我删除@qualifier,那么我的两个dao方法实际上都可以工作,假设SECOND_SELECT语句对于我的DB1是有效的SQL语句。当我为非主datasouce输入@Qualif
我已经使用 使用数据源连接数据库,但我们有50多个数据库。所以我想动态连接数据库。请帮帮我.