先说一下我的环境,
Mysql版本:5.5.60 MySQL Community Server (GPL)
SpringBoot:2.2.5.RELEASE
YAML 配置:
spring: datasource: username: root password: 000000 #Mysql5: com.mysql.jdbc.Driver #Mysql6: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver #Mysql5:jdbc:mysql://localhost:3306/fms?useUnicode=true&characterEncoding=utf8&useSSL=false #Mysql6:jdbc:mysql://localhost:3306/fms?serverTimezone=GMT%2B8&useSSL=false url: jdbc:mysql://localhost:3306/fms?serverTimezone=GMT%2B8&useSSL=false
首先认为我的mysql安装的时5.X版本,驱动用的com.mysql.cj.jdbc.Drive,会不是因为这个原因造成的。
连接url方式也换成了jdbc:mysql://localhost:3306/fms?useUnicode=true&characterEncoding=utf8&useSSL=false
得知serverTimezone参数为Mysql6必须要配置的参数。
这里我把com.mysql.jdbc.Driver和com.mysql.cj.jdbc.Driver两种方法全部试了一下,
得到错误
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
于是开始质疑难道真的密码记错了。。。登陆mysql测试
登陆测试完全OK,最终将Yaml配置文件密码改成"000000",加上引号作为一个字符串传递,成功!
分析了一下原因,直接这样配置在登陆mysql时传入的字符是0
spring:
datasource:
username: root
password: 000000
改为,作为字符串"000000"
spring:
datasource:
username: root
password: "000000"
最终成功!