无法验证新建立的连接

Posted

技术标签:

【中文标题】无法验证新建立的连接【英文标题】:Failed to validate a newly established connection 【发布时间】:2016-01-11 01:42:45 【问题描述】:

出现“”错误。

我搜索并阅读了与此错误相关的每个问题。但是没找到解决办法。

我正在使用spring-boot-starter-data-jpa

它在使用 Postgresql 时没有任何错误。但是我想用嵌入式数据库!!!

application.properties

#We don't need JMX here - disabling it allows for faster startup
spring.jmx.enabled=false
spring.datasource.testOnBorrow=true
spring.datasource.validationQuery=SELECT 1
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=create-drop

spring.datasource.driver-class-name=org.hsqldb.jdbcDriver
spring.jpa.database-platform=org.hibernate.dialect.HSQLDialect
spring.datasource.url=jdbc:hsqldb:file:$user.home/db/data;user=sa;password=123;
spring.datasource.username=sa
spring.datasource.password=123

MainApplication 类的标题:

@ComponentScan(value = "db", "app", "ui")
@EnableJpaRepositories(basePackages = "db")
@EntityScan(basePackages = "db")
@EnableTransactionManagement
@SpringBootApplication

此错误仅在我使用嵌入式数据库(至少是 Derby、HSQLDB)时引发,并非总是如此。有时它会正常启动,查找并保存实体时不会出错,但有时会在等待一段时间后或在成功交易后立即发生。

我该如何解决这个问题?

【问题讨论】:

“这个错误……” 哪一个?将其添加到您的问题中。 对不起,这个错误是“” 【参考方案1】:

在没有验证查询的情况下试一试。如果 HSQLDB 驱动程序与 JDBC4 兼容,它应该使用并使用 Connection.isValid(int timeout) 方法。

【讨论】:

我没有检查您的解决方案。无论如何感谢您的回答。【参考方案2】:

您的验证查询是问题所在。虽然没有FROMSELECT 1Postgres 中有效,但在hsqldb 中无效。

请参阅answer,了解针对不同数据库的建议验证查询

【讨论】:

以上是关于无法验证新建立的连接的主要内容,如果未能解决你的问题,请参考以下文章

在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法訪问server。请验证实例名称是否正确而且 SQL Server 已配置为同意远程连接。

在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名

网络连接错误码

在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管

无法打开与您的身份验证代理的连接。苹果系统

EntityFramework.SqlServer.dll 中发生 其他信息: 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否