jeecg 框架java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

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


查了很多的网站,用户权限问题给加上了,jdbc的连接也没错,账户和密码更是没错。

怀疑是intellij ide的编码问题,就在Myeclipse测试了一下java编码驱动连接,发现可以,又在intellij ide下写了一遍,发现也可以连接,正纳闷,到底是哪里出错了。

从这里可以排除掉了工具ide的问题,还有数据库连接的问题。用另一个项目写链接可以,但是这个项目却不行,区别在于这个项目用了hibernate而且读取的是配置文件里面配置的数据库连接数据,这时候可以新建另一个项目,用同样的读取配置文件的方式来连接数据库,这时候发现也可以。

那么,究竟是哪里有问题呢,可能就是这个项目运行的时候读取的数据,跟我们眼见到的数据是不一样的,也就是类似于缓存的问题,在java这里表现为class文件,于是找到编译后的class文件存储的目录,看了一下那个数据库配置文件,发现,果然是第一次编译时候的默认值!!!

这就难怪一直报密码错误的问题了,因为项目运行时是用的编译后的Class文件,而intellji不想eclipse一样,运行的时候是自动先编译的,这个倒是可以配置。

于是我再次指定了编译的路径(还是原来的路径),然后再编译一遍,于是class文件终于改成我修改后的那个文件的class了,这时候再次运行项目,已经可以启动了。


让我觉得可贵的是,解决任何问题如果没有捷径,直觉和经验告诉你哪里出错时,一般就遵循从大范围到小范围的方式排出问题,排出到具体的个体后,应该考虑时候是个体内部的问题还是外部的问题,内部的问题有什么,是什么。不过这种思路如果是一个个排查的话是有点费时间,而如果已经积累了挺多解决问题的经验的话,应该是可以跳过一些步骤,能更加快速的发现问题和解决问题,但是在没有经验和敏锐的直觉时,就乖乖按照这个排除法做吧。总比没有任何头绪,焦急好。毕竟用这个思路解决问题的话还是挺靠谱嘚。

你可能感兴趣的:(jeecg 框架java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES))