springboot配置mysql数据库spring.datasource.url报错的
解决
⽬录
springboot配置mysql数据库spring.datasource.url报错
springboot下datasource连接配置
基本设置
datasource
JPA
jooq
h2
JTA
springboot配置mysql数据库spring.datasource.url报错
spring.datasource.url=jdbc:mysql://abc:3306/abcd?useUnicode=true&characterEncoding=utf8
很常规地配置了这个mysql的url后发现报错
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.
根据介绍,这⾥需要在URL那指定useSSL这个属性
然后试过useSSL=true
spring.datasource.url=jdbc:mysql://abc:3306/abcd?useUnicode=true&characterEncoding=utf8&useSSL=true
⼜报了⼀个错
Caused by: CertificateException: CertPathValidatorException: Path does not chain with any of the trust anchors
at
at sun.security.ssl.AbstractTrustManagerWrapper.checkServerTrusted(SSLContextImpl.java:984)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1496)
... 31 common frames omitted
Caused by: CertPathValidatorException: Path does not chain with any of the trust anchors
at sun.path.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:153)
at sun.ineValidate(PKIXCertPathValidator.java:79)
at CertPathValidator.validate(CertPathValidator.java:292)
at
... 33 common frames omitted
没有证书设置的话这⾥只能useSSL=false
最终这样设置
spring.datasource.url=jdbc:mysql://abc:3306/abcd?useUnicode=true&characterEncoding=utf8&useSSL=false
springboot下datasource连接配置
基本设置
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.sql.jdbc.Driver
#验证连接的有效性
spring.st-while-idle=true
#获取连接时候验证,会影响性能
spring.st-on-borrow=false
#在连接归还到连接池时是否测试该连接
spring.st-on-return=false
spring.datasource.secondary.validation-query=SELECT 1 FROM DUAL
#空闲连接回收的时间间隔,与test-while-idle⼀起使⽤,设置5分钟
spring.datasource.secondary.time-between-eviction-runs-millis=300000
#连接池空闲连接的有效时间,设置30分钟
spring.datasource.secondary.min-evictable-idle-time-millis=1800000
spring.datasource.secondary.initial-size=5
#指定连接池中最⼤的活跃连接数.
spring.datasource.secondary.max-active=50
#指定连接池等待连接返回的最⼤等待时间,毫秒单位.
spring.datasource.secondary.max-wait=60000
#指定必须保持连接的最⼩值
spring.datasource.secondary.min-idle=5
datasource
abled是否开启PersistenceExceptionTranslationPostProcessor,默认为true spring.datasource.abandon-when-percentage-full设定超时被废弃的连接占到多少⽐例时要被关闭或上报
spring.datasource.allow-pool-suspension使⽤Hikari pool时,是否允许连接池暂停,默认为: false
spring.datasource.alternate-username-allowed是否允许替代的⽤户名.
spring.datasource.auto-commit指定updates是否⾃动提交.
spring.datasource.catalog指定默认的catalog.
spring.datasourcemit-on-return设置当连接被归还时,是否要提交所有还未完成的事务
tion-init-sql指定连接被创建,再被添加到连接池之前执⾏的sql.
tion-init-sqls使⽤DBCP connection pool时,指定初始化时要执⾏的sql
tion-properties.[key]在使⽤DBCP connection pool时指定要配置的属性
tion-test-query指定校验连接合法性执⾏的sql语句
tion-timeout指定连接的超时时间,毫秒单位.
inue-on-error在初始化数据库时,遇到错误是否继续,默认false
spring.datasource.data指定Data (DML)脚本
spring.datasource.data-source-class-name指定数据源的全限定名.
spring.datasource.data-source-jndi指定jndi的地址
spring.datasource.data-source-properties.[key]使⽤Hikari connection pool时,指定要设置的属性
spring.datasource.db-properties使⽤Tomcat connection pool,指定要设置的属性
spring.datasource.default-auto-commit是否⾃动提交.
spring.datasource.default-catalog指定连接默认的catalog.
spring.datasource.default-read-only是否设置默认连接只读.
spring.datasource.default-transaction-isolation指定连接的事务的默认隔离级别.
spring.datasource.driver-class-name指定driver的类名,默认从jdbc url中⾃动探测.
spring.datasource.fair-queue是否采⽤FIFO返回连接.
spring.datasource.health-check-properties.[key]使⽤Hikari connection pool时,在⼼跳检查时传递的属性
spring.datasource.idle-timeout指定连接多久没被使⽤时,被设置为空闲,默认为10ms
spring.datasource.ignore-exception-on-pre-load当初始化连接池时,是否忽略异常.
spring.datasource.init-sql当连接创建时,执⾏的sql
spring.datasource.initial-size指定启动连接池时,初始建⽴的连接数量
spring.datasource.initialization-fail-fast当创建连接池时,没法创建指定最⼩连接数量是否抛异常
spring.datasource.initialize指定初始化数据源,是否⽤data.sql来初始化,默认: true
spring.datasource.isolate-internal-queries指定内部查询是否要被隔离,默认为false
spring.datasource.jdbc-interceptors使⽤Tomcat connection pool时,指定jdbc,分号分隔
spring.datasource.jdbc-url指定JDBC URL.
spring.datasource.jmx-enabled是否开启JMX,默认为: false
spring.datasource.jndi-name指定jndi的名称.
spring.datasource.leak-detection-threshold使⽤Hikari connection pool时,多少毫秒检测⼀次连接泄露.
spring.datasource.log-abandoned使⽤DBCP connection pool,是否追踪废弃statement或连接,默认为: false spring.datasource.log-validation-errors当使⽤Tomcat connection pool是否打印校验错误.
spring.datasource.login-timeout指定连接数据库的超时时间.
spring.datasource.max-active指定连接池中最⼤的活跃连接数.
spring.datasource.max-age指定连接池中连接的最⼤年龄
spring.datasource.max-idle指定连接池最⼤的空闲连接数量.
spring.datasource.max-lifetime指定连接池中连接的最⼤⽣存时间,毫秒单位.
spring.datasource.max-open-prepared-statements指定最⼤的打开的prepared statements数量.
spring.datasource.max-wait指定连接池等待连接返回的最⼤等待时间,毫秒单位.
spring.datasource.maximum-pool-size指定连接池最⼤的连接数,包括使⽤中的和空闲的连接.
spring.datasource.min-evictable-idle-time-millis指定⼀个空闲连接最少空闲多久后可被清除.
spring.datasource.min-idle指定必须保持连接的最⼩值(For DBCP and Tomcat connection pools)
spring.datasource.minimum-idle指定连接维护的最⼩空闲连接数,当使⽤HikariCP时指定.
spring.datasource.name指定数据源名.
spring.datasource.num-tests-per-eviction-run指定运⾏每个idle object evictor线程时的对象数量
spring.datasource.password指定数据库密码.
spring.datasource.platform指定schema要使⽤的Platform(schema-${platform}.sql),默认为:all
spring.datasource.pool-name指定连接池名字.
spring.datasource.pool-prepared-statements指定是否池化statements.
spring.datasource.propagate-interrupt-state在等待连接时,如果线程被中断,是否传播中断状态.
ad-only当使⽤Hikari connection pool时,是否标记数据源只读
ister-mbeans指定Hikari connection pool是否注册JMX MBeans.
ve-abandoned指定当连接超过废弃超时时间时,是否⽴刻删除该连接.
ve-abandoned-timeout指定连接应该被废弃的时间.
llback-on-return在归还连接时,是否回滚等待中的事务.
spring.datasource.schema指定Schema (DDL)脚本.
spring.datasource.separator指定初始化脚本的语句分隔符,默认: ;
spring.datasource.sql-script-encoding指定SQL scripts编码.
spring.datasource.suspect-timeout指定打印废弃连接前的超时时间.
st-on-borrow当从连接池借⽤连接时,是否测试该连接.
st-on-connect创建时,是否测试连接
st-on-return在连接归还到连接池时是否测试该连接.
st-while-idle当连接空闲时,是否执⾏连接测试.
spring.datasource.time-between-eviction-runs-millis指定空闲连接检查、废弃连接清理、空闲连接池⼤⼩调整之间的操作时间间隔ansaction-isolation指定事务隔离级别,使⽤Hikari connection pool时指定
spring.datasource.url指定JDBC URL.
spring.datasource.use-disposable-connection-facade是否对连接进⾏包装,防⽌连接关闭之后被使⽤.
spring.datasource.use-equals⽐较⽅法名时是否使⽤String.equals()替换==.
spring.datasource.use-lock是否对连接操作加锁
spring.datasource.username指定数据库名.
spring.datasource.validation-interval指定多少ms执⾏⼀次连接校验.
spring.datasource.validation-query指定获取连接时连接校验的sql查询语句.
spring.datasource.validation-query-timeout指定连接校验查询的超时时间.
spring.datasource.validation-timeout设定连接校验的超时时间,当使⽤Hikari connection pool时指定
spring.datasource.validator-class-name⽤来测试查询的validator全限定名.
spring.datasource.xa.data-source-class-name指定数据源的全限定名.
spring.datasource.xa.properties指定传递给XA data source的属性
JPAspringcloud和springboot
spring.jpa.database指定⽬标数据库.
spring.jpa.database-platform指定⽬标数据库的类型.
ate-ddl是否在启动时初始化schema,默认为false
spring.jpa.hibernate.ddl-auto指定DDL mode (none, validate, update, create, create-drop). 当使⽤内嵌数据库时,默认是create-drop,否则为none.
spring.jpa.hibernate.naming-strategy指定命名策略.
spring.jpa.open-in-view是否注册OpenEntityManagerInViewInterceptor,绑定JPAEntityManager到请求线程中,默认为: true spring.jpa.properties添加额外的属性到JPA provider.
spring.jpa.show-sql是否开启sql的log,默认为: false
jooq
spring.jooq.sql-dialect指定JOOQ使⽤的SQLDialect,⽐如POSTGRES.
h2
abled是否开启控制台,默认为false
sole.path指定控制台路径,默认为: /h2-console
JTA
spring.jta.allow-multiple-lrc是否允许 multiple LRC,默认为: false
spring.jta.asynchronous2-pc指定两阶段提交是否可以异步,默认为: false
spring.jta.background-recovery-interval指定多少分钟跑⼀次recovery process,默认为: 1
spring.jta.background-recovery-interval-seconds指定多久跑⼀次recoveryprocess,默认: 60
spring.jta.current-node-only-recovery是否过滤掉其他⾮本JVM的recovery,默认为: true
spring.jta.debug-zero-resource-transaction是否追踪没有使⽤指定资源的事务,默认为: false
spring.jta.default-transaction-timeout设定默认的事务超时时间,默认为60
spring.jta.disable-jmx是否禁⽤jmx,默认为false
abled是否开启JTA support,默认为: true
ption-analyzer设置指定的异常分析类
spring.jta.filter-log-status使⽤Bitronix Transaction Manager时,是否写mandatory logs,开启的话,可以节省磁盘空间,但是调试会复杂写,默认为false
spring.jta.force-batching-enabled使⽤Bitronix Transaction Manager时,是否批量写磁盘,默认为true.
spring.jta.forced-write-enabled使⽤Bitronix Transaction Manager时,是否强制写⽇志到磁盘,默认为true
aceful-shutdown-interval当使⽤Bitronix Transaction Manager,指定shutdown时等待事务结束的时间,超过则中断,默认为60
spring.jta.jndi-transaction-synchronization-registry-name当使⽤Bitronix
Transaction Manager时,在JNDI下得事务同步registry,默认为:java:comp/TransactionSynchronizationRegistry
spring.jta.jndi-user-transaction-name指定在JNDI使⽤Bitronix Transaction Manager的名称,默认:java:comp/UserTransaction spring.jta.journal当使⽤Bitronix Transaction Manager,指定The journal是否disk还是null还是⼀个类的全限定名,默认disk spring.jta.log-dirTransaction logs directory.
spring.jta.log-part1-filename指定The journal fragment⽂件1的名字,默认: btm1.tlog
spring.jta.log-part2-filename指定The journal fragment⽂件2的名字,默认: btm2.tlog
spring.jta.max-log-size-in-mb指定journal fragments⼤⼩的最⼤值. 默认: 2M
source-configuration-filename指定Bitronix Transaction Manager配置⽂件名.
spring.jta.server-id指定Bitronix Transaction Manager实例的id.
spring.jta.skip-corrupted-logs是否忽略corrupted log files⽂件,默认为false.
ansaction-manager-id指定Transaction manager的唯⼀标识.
jta.warn-about-zero-resource-transaction当使⽤Bitronix Transaction Manager时,是否对没有使⽤指定资源的事务进⾏警告,默认为: true
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。