Access denied for user ‘$(username)’@‘localhost’ (using password: YES)错误的一个解决方法
报错信息如下:
我的database.properties中的username为root,但是这里给的错误提示信息为本机的用户名。database.properties文件内容如下:
spring-dao.xml文件部分内容如下:
从这里可以看出,我这里的配置文件代码是并没有问题,鼠标移上去也能给出提示信息。
我也上网搜索过这个错误,大部分都说的是root不能远程登录,而我这个是用户名都错了,更何谈什么能不能远程登录。。。
然后我把username和password写死在里面,发现可以查处结果了。。。
确实和玄学
以后如果报这个错误并导致查不出结果的话,可以尝试一下把username和password写死。
写死后就能顺利查出结果了。
测试代码如下
@Test
public void no3(){
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
BookService bookServiceImpl = context.getBean("bookServiceImpl", BookService.class);
for (Books books : bookServiceImpl.getAllBooks()) {
System.out.println(books);
}
}
理一下发生我这种错误的原因:
我在同一个项目里使用了两个不同的连接池来创建同一个数据库的连接,而且用的是同一个database.properties文件。前一个用的是alibaba产生的JdbcTemplate,mybatis使用的是c3p0。
但是为什么会这样呢?用配置文件配置连接池属性竟然会出错。。。有大佬能指教一下吗?