java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringBoot连接MySQL8.0数据库

SpringBoot项目如何连接MySQL8.0数据库

作者:鱼有个梦想

这篇文章主要介绍了SpringBoot项目如何连接MySQL8.0数据库,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

SpringBoot连接MySQL8.0数据库

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/springsecuritydate?serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root

SpringBoot连接MySQL8.0版的坑

错误描述

出错时:数据库连接,需要先配置application-dev.yml文件,配置文件如下:

server:
  port: 8081
  servlet:
    context-path: /luckymoney

limit:
  minMoney: 0.01
  maxMoney: 9999
  description: 最少要发${limit.minMoney}元,最多要发${limit.maxMoney}元

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/luckymoney
    username: root
    password: 0625
  jpa:
    hibernate:
      ddl-auto: create
    show-sql: true

报错内容:

然后在网上查找相应的内容,其实关于时区错误有很多解决方案。

我找到一个能够解决的方案为修改spring.datasource.url

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/luckymoney?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=true

即添加:?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=true

解决了上述问题,再次运行程序,依然报错:

报错内容:

这一次还是连接池初始化错误,但是这个问题就花费很多时间去查找。在下面给出解决方案。

解决方案

将数据库密码用单引号括起来,就是这样就解决了。

但是具体原理还需要我进一步去了解,为什么springboot在于mysql 8.0版本连接的时候,密码要使用单引号括起来。(好像这个将密码括起来不是那么必须?但是也是一种解决方案)

...
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/luckymoney?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=true
    username: root
    password: '0625'
...

这下就可以完美启动了!

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文