java.sql.SQLException: Access denied for user '用户名'@'localhost' (using password: YES)

拈花ヽ惹草 提交于 2020-03-03 06:32:12

该错误是在进行spring和mybatis整合,进行单元测试时出现的错误

说明:该类的错误一般是properties文件出现的问题,在进行数据库连接时,获取不到数据
常见错误类型:
① (using password: YES):用户名未获取到
② (using password: NO):密码未获取到
解决:出现这种问题的原因有很多
1. 配置文件的key与获取时的key不一致
2. 配置文件里的用户名或密码中有空格(尤其注意值前后的空格,见下面代码)

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
name=[空格]root[空格] 
password=[空格]root[空格]
注:标注[空格]的地方不能有空格
  1. 将properties的name属性配置为了username
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=root

说明:由于username是关键字,取值时是取不到的,所以才会报这个错误
解决方式:可以通过在哪读取时配置 system-properties-mode 属性来解决
将 system-properties-mode 的值设为 FALLBACK
具体如下:

<context:property-placeholder location="classpath:jdbcConfig.properties" system-properties-mode="FALLBACK"/>
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!