Access denied for user 'root'@'localhost' (using password:YES) 解决方案

Posted 小宁的杂货铺

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Access denied for user 'root'@'localhost' (using password:YES) 解决方案相关的知识,希望对你有一定的参考价值。

相信这个问题大部分人都遇到过,至少我遇到过三次了,而且每次原因都不一样,前段时间同学也遇到这个问题,问我怎么解决,我把我的解决思路都说了一遍,发现还不行,最后居然是另外一个原因。。。哎,说多了都是泪,总结如下:

(注:本文都建立在数据库能正常使用,但是程序无法连接数据库的基础上,如果在doc窗口或者用其他MySQL图形界面都连接不上,请自补mysql的基础知识吧技术分享

大概意思就是,如果能用mysql命令行进入mysql,就说明mysql安装没问题,是你程序的问题,没有连接权限(这里后面细说)。这里要说明一点的就是,非常重要,就是最后一句话,不要有空格!我就是吃了这个亏啊,在jabc.properties里面配置username和password时,因为换行的原因,里面有空格,说白了还是用户名和密码出错。如下

  1. jdbc.username=root    
  2. jdbc.password=123456    


root和123456后面都有空格,这个真是肉眼发现不了啊。。。。所以删掉空格就好了

2.用户没有权限(骗自己?参考)

其实,这一点也是网上看别人这么说的,自己没用过。但是我想,如果像我前面第一点提到的,你能在命令行模式下用这个用户名和密码进入mysql的话,那肯定有权限了啊,干嘛还要赋予权限?。。。所以仅供参考。。。

  1. CREATE USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘你的密码‘;  
  2. GRANT ALL PRIVILEGES ON *.* TO [email protected]‘localhost‘;  

3.mysql和驱动jar版本冲突

这个是我同学出现的问题,他前面的问题都没有,后来我们发现,他安装的mysql是5.7,但是用的驱动jar(mysql-connector)是5.1.3(是我发给他的,怪我咯),好像程序里面一直连不上mysql,然后就没有然后了,就卸载了5.7的mysql,重新安装了5.0的mysql...(安装了还是在重启后才起效的),所以这个是个特例。。。






以上是关于Access denied for user 'root'@'localhost' (using password:YES) 解决方案的主要内容,如果未能解决你的问题,请参考以下文章

ERROR 1045 (28000): Access denied for user ‘root‘@

MySql access denied for user错误

ERROR 1045 (28000): Access denied for user ‘roort‘

Mysql Access denied for user 'root'

MySQL Access denied for user root@localhost 解决方法

Access Denied for user root @localhost 解决方案