2017-07-31 70 views
3

我正在使用弹簧引导(1.4.7)& mybatis。如何让Spring服务器即使数据库关闭也能启动?

spring.main1.datasource.url=jdbc:mariadb://192.168.0.11:3306/testdb?useUnicode=true&characterEncoding=utf8&autoReconnect=true&socketTimeout=5000&connectTimeout=3000 
spring.main1.datasource.username=username 
spring.main1.datasource.password=password 
spring.main1.datasource.driverClassName=org.mariadb.jdbc.Driver 
spring.main1.datasource.tomcat.test-on-borrow=true 
spring.main1.datasource.tomcat.test-while-idle=true 
spring.main1.datasource.tomcat.validation-query=SELECT 1 
spring.main1.datasource.tomcat.validation-query-timeout=5000 
spring.main1.datasource.tomcat.validation-interval=5000 
spring.main1.datasource.tomcat.max-wait=5000 
spring.main1.datasource.continue-on-error=true 

当eclipse或linux服务器上的数据库断开连接时,我无法启动带有错误的程序。 (数据库不在本地主机上。)

当我尝试使用断开的数据库启动程序时, 打印此。

java.sql.SQLNonTransientConnectionException: Could not connect to address=(host=192.168.0.11)(port=3306)(type=master) : connect timed out 
Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLNonTransientConnectionException: Could not connect to address=(host=192.168.0.11)(port=3306)(type=master) : connect timed out 
Stopping service [Tomcat] 
Application startup failed 

有什么办法吗?

感谢

+0

这可能会在稍后的Spring Boot版本中修复。根据https://github.com/spring-projects/spring-boot/issues/7589尝试升级到至少1.5.2? – Strelok

回答

1

您可以设置:

spring.datasource.continue-on-error=true 
在application.properties

按照Spring Boot 1.4.7 user guide

要禁用快速失败的,你可以设置spring.datasource.continue-ON误差=真。这可以在应用程序成熟并部署几次后很有用,因为脚本可以充当'穷人的迁移' - 插入失败意味着数据已经存在,因此不需要阻止应用程序运行,例如。

相关问题