目录
1. 报错演示
最近写spring配置文件
出现报错
严重: create connection SQLException, url: jdbc:mysql:///test, errorCode 1045, state 28000
java.sql.SQLException: Access denied for user 'Lenovo'@'localhost' (using password: YES)
2. 代码思路分析
下面是我的代码
- spring xml 配置文件中配置了druid连接池对象
- spring xml 里的druid连接池对象 通过 ${} 去properties文件里读取 四项配置
- 程序从spring 容器中取出druid连接池对象
- 连接池 获取 数据库连接对象Connection
- 打印Connection
3. 报错问题分析
我们看一下报错, 这很显然是MySQL登录出了问题 : (using password: YES)
再看一下用户名: Lenovo 好家伙 这不是我计算机用户名吗?
为了验证猜测, 我们打印一下数据源的四个信息
果然, 不出所料
打印的user是我的计算机用户名
4. 问题解决
问题找到了 怎么解决呢?
经查询,
spring默认会优先加载系统环境变量,此时获取到的username的值实际上指的是当前计算机的用户名。而不是properties配置文件中指定的username的值。
我们在标签后加上这一句
local-override="true"
再测试
问题解决 ! !