今天遇到一个奇葩的坑,连接MySql报错 :
ERROR com.alibaba.druid.pool.DruidDataSource 2840 - create connection SQLException, url: jdbc:mysql://192.168.10.22:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8, errorCode 1045, state 28000
java.sql.SQLException: Access denied for user 'root'@'192.168.10.1' (using password: YES)
错误的意思就是账号密码错误, 连接不上。
我检查了很多遍,账号密码没发现问题,反而报错中的 ‘root’@‘192.168.10.1’ 引起了我的注意,这个怎么不是我的本地IP,反而是数据库IP的网关地址。我本地IP是 192.168.10.11
百思不得其解,经过各种方法都没用,测试发现连接本地的数据库没问题。
直接说原因吧,局域网内的数据库密码是 “00000000”,面是我的配置
spring:
datasource:
username: root
password: 00000000
问题在于密码没有加引号,springboot把这解析成了 0 ,正确的配置如下
spring:
datasource:
username: root
password: "00000000"
问题解决了,但为什么报错中提示的IP地址不是本地IP???