2017-07-31 50 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誤差=真。這可以在應用程序成熟並部署幾次後很有用,因爲腳本可以充當'窮人的遷移' - 插入失敗意味着數據已經存在,因此不需要阻止應用程序運行,例如。

相關問題