mybatis通过jdbc连接mysql数据库,一致报如下错误:
org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
### The error may exist in com/mybatis/mapper/ParameterMapper.xml
### The error may involve com.mybatis.mapper.ParameterMapper.getAllUser
### The error occurred while executing a query
### Cause: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
中间尝试过好多方法,这里我大概列举一下。
1.修改my.ini文件,通过跳过权限认证达到连接的目的,但这一方法并没有解决我的问题。
2. 删除多余数据库用户。通过命令进入mysql,删除多余用户,可以参考我下面这图片。
3. 检查密码是否错误,密码输入是正确的,这一步也不是我的问题所在。
终于,在反复验证之后,没想到是一个方括号缺失导致了我的问题。
<dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password"/> </dataSource>
在password后面,少了一个} 大的方括号,所以,有时候的问题并不是报错那样,少了方括号没有读取到密码,所以一直报错提示是密码的问题。加上方括号在跑一次程序,已经成功了!
这虽然是一个小小的问题,但却困扰了我一天,时间宝贵,所以平时新手学习的时候要千万仔细。这一天没有进步,我的白富美和钞票又被别人给抢了。