Spring Boot连接Mysql 8.0-坑

SpringBoot连接mysql8.0版本-坑

最近一段时间在学习慕课网课程-《2小时快速上手Spring Boot》,在使用spring boot连接数据库时出现错误。因为老师的数据库版本为5.7,我的数据库版本为8.0,所以在依葫芦画瓢的情况下,出现数据库连接错误,google无数内容,终于在浩瀚的网络中找到了能够解决问题的办法。

错误描述

出错时:数据库连接,需要先配置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'
...

在这里插入图片描述
这下就可以完美启动了!

参考:

  1. 参考-csdn
发布了16 篇原创文章 · 获赞 2 · 访问量 1281

猜你喜欢

转载自blog.csdn.net/yx185/article/details/100023658