先說一下我的環境,
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"
最終成功!