springboot配置mysql數(shù)據(jù)庫spring.datasource.url報錯的解決
springboot配置mysql數(shù)據(jù)庫spring.datasource.url報錯
spring.datasource.url=jdbc:mysql://abc:3306/abcd?useUnicode=true&characterEncoding=utf8
很常規(guī)地配置了這個mysql的url后發(fā)現(xiàn)報錯
Wed Oct 24 14:59:16 CST 2018 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
根據(jù)介紹,這里需要在URL那指定useSSL這個屬性
然后試過useSSL=true
spring.datasource.url=jdbc:mysql://abc:3306/abcd?useUnicode=true&characterEncoding=utf8&useSSL=true
又報了一個錯
Caused by: java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: Path does not chain with any of the trust anchors
at com.mysql.jdbc.ExportControlled$X509TrustManagerWrapper.checkServerTrusted(ExportControlled.java:302)
at sun.security.ssl.AbstractTrustManagerWrapper.checkServerTrusted(SSLContextImpl.java:984)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1496)
... 31 common frames omitted
Caused by: java.security.cert.CertPathValidatorException: Path does not chain with any of the trust anchors
at sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:153)
at sun.security.provider.certpath.PKIXCertPathValidator.engineValidate(PKIXCertPathValidator.java:79)
at java.security.cert.CertPathValidator.validate(CertPathValidator.java:292)
at com.mysql.jdbc.ExportControlled$X509TrustManagerWrapper.checkServerTrusted(ExportControlled.java:295)
... 33 common frames omitted
沒有證書設(shè)置的話這里只能useSSL=false
最終這樣設(shè)置
spring.datasource.url=jdbc:mysql://abc:3306/abcd?useUnicode=true&characterEncoding=utf8&useSSL=false
springboot下datasource連接配置
基本設(shè)置
spring.datasource.secondary.url=jdbc:mysql://localhost:3306/test2?useUnicode=true&characterEncoding=utf-8 spring.datasource.secondary.username=test spring.datasource.secondary.password=123456 spring.datasource.secondary.driver-class-name=com.mysql.jdbc.Driver #驗證連接的有效性 spring.datasource.secondary.test-while-idle=true #獲取連接時候驗證,會影響性能 spring.datasource.secondary.test-on-borrow=false #在連接歸還到連接池時是否測試該連接 spring.datasource.secondary.test-on-return=false spring.datasource.secondary.validation-query=SELECT 1 FROM DUAL #空閑連接回收的時間間隔,與test-while-idle一起使用,設(shè)置5分鐘 spring.datasource.secondary.time-between-eviction-runs-millis=300000 #連接池空閑連接的有效時間 ,設(shè)置30分鐘 spring.datasource.secondary.min-evictable-idle-time-millis=1800000 spring.datasource.secondary.initial-size=5 #指定連接池中最大的活躍連接數(shù). spring.datasource.secondary.max-active=50 #指定連接池等待連接返回的最大等待時間,毫秒單位. spring.datasource.secondary.max-wait=60000 #指定必須保持連接的最小值 spring.datasource.secondary.min-idle=5
datasource
spring.dao.exceptiontranslation.enabled是否開啟PersistenceExceptionTranslationPostProcessor,默認(rèn)為truespring.datasource.abandon-when-percentage-full設(shè)定超時被廢棄的連接占到多少比例時要被關(guān)閉或上報spring.datasource.allow-pool-suspension使用Hikari pool時,是否允許連接池暫停,默認(rèn)為: falsespring.datasource.alternate-username-allowed是否允許替代的用戶名.spring.datasource.auto-commit指定updates是否自動提交.spring.datasource.catalog指定默認(rèn)的catalog.spring.datasource.commit-on-return設(shè)置當(dāng)連接被歸還時,是否要提交所有還未完成的事務(wù)spring.datasource.connection-init-sql指定連接被創(chuàng)建,再被添加到連接池之前執(zhí)行的sql.spring.datasource.connection-init-sqls使用DBCP connection pool時,指定初始化時要執(zhí)行的sqlspring.datasource.connection-properties.[key]在使用DBCP connection pool時指定要配置的屬性spring.datasource.connection-test-query指定校驗連接合法性執(zhí)行的sql語句spring.datasource.connection-timeout指定連接的超時時間,毫秒單位.spring.datasource.continue-on-error在初始化數(shù)據(jù)庫時,遇到錯誤是否繼續(xù),默認(rèn)falsespring.datasource.data指定Data (DML)腳本spring.datasource.data-source-class-name指定數(shù)據(jù)源的全限定名.spring.datasource.data-source-jndi指定jndi的地址spring.datasource.data-source-properties.[key]使用Hikari connection pool時,指定要設(shè)置的屬性spring.datasource.db-properties使用Tomcat connection pool,指定要設(shè)置的屬性spring.datasource.default-auto-commit是否自動提交.spring.datasource.default-catalog指定連接默認(rèn)的catalog.spring.datasource.default-read-only是否設(shè)置默認(rèn)連接只讀.spring.datasource.default-transaction-isolation指定連接的事務(wù)的默認(rèn)隔離級別.spring.datasource.driver-class-name指定driver的類名,默認(rèn)從jdbc url中自動探測.spring.datasource.fair-queue是否采用FIFO返回連接.spring.datasource.health-check-properties.[key]使用Hikari connection pool時,在心跳檢查時傳遞的屬性spring.datasource.idle-timeout指定連接多久沒被使用時,被設(shè)置為空閑,默認(rèn)為10msspring.datasource.ignore-exception-on-pre-load當(dāng)初始化連接池時,是否忽略異常.spring.datasource.init-sql當(dāng)連接創(chuàng)建時,執(zhí)行的sqlspring.datasource.initial-size指定啟動連接池時,初始建立的連接數(shù)量spring.datasource.initialization-fail-fast當(dāng)創(chuàng)建連接池時,沒法創(chuàng)建指定最小連接數(shù)量是否拋異常spring.datasource.initialize指定初始化數(shù)據(jù)源,是否用data.sql來初始化,默認(rèn): truespring.datasource.isolate-internal-queries指定內(nèi)部查詢是否要被隔離,默認(rèn)為falsespring.datasource.jdbc-interceptors使用Tomcat connection pool時,指定jdbc攔截器,分號分隔spring.datasource.jdbc-url指定JDBC URL.spring.datasource.jmx-enabled是否開啟JMX,默認(rèn)為: falsespring.datasource.jndi-name指定jndi的名稱.spring.datasource.leak-detection-threshold使用Hikari connection pool時,多少毫秒檢測一次連接泄露.spring.datasource.log-abandoned使用DBCP connection pool,是否追蹤廢棄statement或連接,默認(rèn)為: falsespring.datasource.log-validation-errors當(dāng)使用Tomcat connection pool是否打印校驗錯誤.spring.datasource.login-timeout指定連接數(shù)據(jù)庫的超時時間.spring.datasource.max-active指定連接池中最大的活躍連接數(shù).spring.datasource.max-age指定連接池中連接的最大年齡spring.datasource.max-idle指定連接池最大的空閑連接數(shù)量.spring.datasource.max-lifetime指定連接池中連接的最大生存時間,毫秒單位.spring.datasource.max-open-prepared-statements指定最大的打開的prepared statements數(shù)量.spring.datasource.max-wait指定連接池等待連接返回的最大等待時間,毫秒單位.spring.datasource.maximum-pool-size指定連接池最大的連接數(shù),包括使用中的和空閑的連接.spring.datasource.min-evictable-idle-time-millis指定一個空閑連接最少空閑多久后可被清除.spring.datasource.min-idle指定必須保持連接的最小值(For DBCP and Tomcat connection pools)spring.datasource.minimum-idle指定連接維護(hù)的最小空閑連接數(shù),當(dāng)使用HikariCP時指定.spring.datasource.name指定數(shù)據(jù)源名.spring.datasource.num-tests-per-eviction-run指定運行每個idle object evictor線程時的對象數(shù)量spring.datasource.password指定數(shù)據(jù)庫密碼.spring.datasource.platform指定schema要使用的Platform(schema-${platform}.sql),默認(rèn)為:allspring.datasource.pool-name指定連接池名字.spring.datasource.pool-prepared-statements指定是否池化statements.spring.datasource.propagate-interrupt-state在等待連接時,如果線程被中斷,是否傳播中斷狀態(tài).spring.datasource.read-only當(dāng)使用Hikari connection pool時,是否標(biāo)記數(shù)據(jù)源只讀spring.datasource.register-mbeans指定Hikari connection pool是否注冊JMX MBeans.spring.datasource.remove-abandoned指定當(dāng)連接超過廢棄超時時間時,是否立刻刪除該連接.spring.datasource.remove-abandoned-timeout指定連接應(yīng)該被廢棄的時間.spring.datasource.rollback-on-return在歸還連接時,是否回滾等待中的事務(wù).spring.datasource.schema指定Schema (DDL)腳本.spring.datasource.separator指定初始化腳本的語句分隔符,默認(rèn): ;spring.datasource.sql-script-encoding指定SQL scripts編碼.spring.datasource.suspect-timeout指定打印廢棄連接前的超時時間.spring.datasource.test-on-borrow當(dāng)從連接池借用連接時,是否測試該連接.spring.datasource.test-on-connect創(chuàng)建時,是否測試連接spring.datasource.test-on-return在連接歸還到連接池時是否測試該連接.spring.datasource.test-while-idle當(dāng)連接空閑時,是否執(zhí)行連接測試.spring.datasource.time-between-eviction-runs-millis指定空閑連接檢查、廢棄連接清理、空閑連接池大小調(diào)整之間的操作時間間隔spring.datasource.transaction-isolation指定事務(wù)隔離級別,使用Hikari connection pool時指定spring.datasource.url指定JDBC URL.spring.datasource.use-disposable-connection-facade是否對連接進(jìn)行包裝,防止連接關(guān)閉之后被使用.spring.datasource.use-equals比較方法名時是否使用String.equals()替換==.spring.datasource.use-lock是否對連接操作加鎖spring.datasource.username指定數(shù)據(jù)庫名.spring.datasource.validation-interval指定多少ms執(zhí)行一次連接校驗.spring.datasource.validation-query指定獲取連接時連接校驗的sql查詢語句.spring.datasource.validation-query-timeout指定連接校驗查詢的超時時間.spring.datasource.validation-timeout設(shè)定連接校驗的超時時間,當(dāng)使用Hikari connection pool時指定spring.datasource.validator-class-name用來測試查詢的validator全限定名.spring.datasource.xa.data-source-class-name指定數(shù)據(jù)源的全限定名.spring.datasource.xa.properties指定傳遞給XA data source的屬性
JPA
spring.jpa.database指定目標(biāo)數(shù)據(jù)庫.spring.jpa.database-platform指定目標(biāo)數(shù)據(jù)庫的類型.spring.jpa.generate-ddl是否在啟動時初始化schema,默認(rèn)為falsespring.jpa.hibernate.ddl-auto指定DDL mode (none, validate, update, create, create-drop). 當(dāng)使用內(nèi)嵌數(shù)據(jù)庫時,默認(rèn)是create-drop,否則為none.spring.jpa.hibernate.naming-strategy指定命名策略.spring.jpa.open-in-view是否注冊O(shè)penEntityManagerInViewInterceptor,綁定JPAEntityManager到請求線程中,默認(rèn)為: truespring.jpa.properties添加額外的屬性到JPA provider.spring.jpa.show-sql是否開啟sql的log,默認(rèn)為: false
jooq
spring.jooq.sql-dialect指定JOOQ使用的SQLDialect,比如POSTGRES.
h2
spring.h2.console.enabled是否開啟控制臺,默認(rèn)為falsespring.h2.console.path指定控制臺路徑,默認(rèn)為: /h2-console
JTA
spring.jta.allow-multiple-lrc是否允許 multiple LRC,默認(rèn)為: falsespring.jta.asynchronous2-pc指定兩階段提交是否可以異步,默認(rèn)為: falsespring.jta.background-recovery-interval指定多少分鐘跑一次recovery process,默認(rèn)為: 1spring.jta.background-recovery-interval-seconds指定多久跑一次recoveryprocess,默認(rèn): 60spring.jta.current-node-only-recovery是否過濾掉其他非本JVM的recovery,默認(rèn)為: truespring.jta.debug-zero-resource-transaction是否追蹤沒有使用指定資源的事務(wù),默認(rèn)為: falsespring.jta.default-transaction-timeout設(shè)定默認(rèn)的事務(wù)超時時間,默認(rèn)為60spring.jta.disable-jmx是否禁用jmx,默認(rèn)為falsespring.jta.enabled是否開啟JTA support,默認(rèn)為: truespring.jta.exception-analyzer設(shè)置指定的異常分析類spring.jta.filter-log-status使用Bitronix Transaction Manager時,是否寫mandatory logs,開啟的話,可以節(jié)省磁盤空間,但是調(diào)試會復(fù)雜寫,默認(rèn)為falsespring.jta.force-batching-enabled使用Bitronix Transaction Manager時,是否批量寫磁盤,默認(rèn)為true.spring.jta.forced-write-enabled使用Bitronix Transaction Manager時,是否強(qiáng)制寫日志到磁盤,默認(rèn)為truespring.jta.graceful-shutdown-interval當(dāng)使用Bitronix Transaction Manager,指定shutdown時等待事務(wù)結(jié)束的時間,超過則中斷,默認(rèn)為60spring.jta.jndi-transaction-synchronization-registry-name當(dāng)使用BitronixTransaction Manager時,在JNDI下得事務(wù)同步registry,默認(rèn)為:java:comp/TransactionSynchronizationRegistryspring.jta.jndi-user-transaction-name指定在JNDI使用Bitronix Transaction Manager的名稱,默認(rèn):java:comp/UserTransactionspring.jta.journal當(dāng)使用Bitronix Transaction Manager,指定The journal是否disk還是null還是一個類的全限定名,默認(rèn)diskspring.jta.log-dirTransaction logs directory.spring.jta.log-part1-filename指定The journal fragment文件1的名字,默認(rèn): btm1.tlogspring.jta.log-part2-filename指定The journal fragment文件2的名字,默認(rèn): btm2.tlogspring.jta.max-log-size-in-mb指定journal fragments大小的最大值. 默認(rèn): 2Mspring.jta.resource-configuration-filename指定Bitronix Transaction Manager配置文件名.spring.jta.server-id指定Bitronix Transaction Manager實例的id.spring.jta.skip-corrupted-logs是否忽略corrupted log files文件,默認(rèn)為false.spring.jta.transaction-manager-id指定Transaction manager的唯一標(biāo)識.jta.warn-about-zero-resource-transaction當(dāng)使用Bitronix Transaction Manager時,是否對沒有使用指定資源的事務(wù)進(jìn)行警告,默認(rèn)為: true
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- SpringBoot?DataSource數(shù)據(jù)源實現(xiàn)自動配置流程詳解
- SpringBoot Test 多線程報錯的根本原因(dataSource already closed)
- SpringBoot基于AbstractRoutingDataSource實現(xiàn)多數(shù)據(jù)源動態(tài)切換
- springboot集成mybatis?plus和dynamic-datasource注意事項說明
- springboot+dynamicDataSource動態(tài)添加切換數(shù)據(jù)源方式
- SpringBoot數(shù)據(jù)庫初始化datasource配置方式
相關(guān)文章
Java如何計算兩個時間段內(nèi)的工作日天數(shù)
這篇文章主要介紹了Java如何計算兩個時間段內(nèi)的工作日天數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
SpringBoot讀取properties中文亂碼解決方案
本文主要介紹了在Spring?Boot中讀取帶有中文字符串的application.properties文件時遇到亂碼問題的解決方案,具有一定的參考價值,感興趣的可以了解一下2024-12-12
Java實現(xiàn)后臺發(fā)送及接收json數(shù)據(jù)的方法示例
這篇文章主要介紹了Java實現(xiàn)后臺發(fā)送及接收json數(shù)據(jù)的方法,結(jié)合實例形式分析了java針對json格式數(shù)據(jù)的傳輸與操作相關(guān)技巧,需要的朋友可以參考下2018-12-12
Mybatis在注解上如何實現(xiàn)動態(tài)SQL
這篇文章主要介紹了Mybatis在注解上如何實現(xiàn)動態(tài)SQL,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06
MyBatis在注解上使用動態(tài)SQL方式(@select使用if)
這篇文章主要介紹了MyBatis在注解上使用動態(tài)SQL方式(@select使用if),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
Spring?MVC?前端控制器?(DispatcherServlet)處理流程解析
DispatcherServlet是前置控制器,配置在web.xml文件中的,這篇文章主要介紹了Spring?MVC?前端控制器?(DispatcherServlet)處理流程,需要的朋友可以參考下2022-05-05
java多線程CyclicBarrier的使用案例,讓線程起步走
這篇文章主要介紹了java多線程CyclicBarrier的使用案例,讓線程起步走!具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02
MySQL 新增字段但 Java 實體未更新存在潛在問題與解決方案
在 Java + MySQL 的開發(fā)中,我們通常使用 ORM 框架(如 MyBatis、MyBatis-Plus、Hibernate)來映射數(shù)據(jù)庫表與 Java 對象,這篇文章主要介紹了MySQL 新增字段但 Java 實體未更新:潛在問題與解決方案,需要的朋友可以參考下2025-04-04
Sentinel?Gateway自定義限流返回結(jié)果方式
這篇文章主要介紹了Sentinel?Gateway自定義限流返回結(jié)果方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-04-04

