首页 > 代码库 > Access denied for user 'root'@'localhost' (using password:YES) 解决方案
Access denied for user 'root'@'localhost' (using password:YES) 解决方案
相信这个问题大部分人都遇到过,至少我遇到过三次了,而且每次原因都不一样,前段时间同学也遇到这个问题,问我怎么解决,我把我的解决思路都说了一遍,发现还不行,最后居然是另外一个原因。。。哎,说多了都是泪,总结如下:
(注:本文都建立在数据库能正常使用,但是程序无法连接数据库的基础上,如果在doc窗口或者用其他MySQL图形界面都连接不上,请自补mysql的基础知识吧)
大概意思就是,如果能用mysql命令行进入mysql,就说明mysql安装没问题,是你程序的问题,没有连接权限(这里后面细说)。这里要说明一点的就是,非常重要,就是最后一句话,不要有空格!我就是吃了这个亏啊,在jabc.properties里面配置username和password时,因为换行的原因,里面有空格,说白了还是用户名和密码出错。如下
- jdbc.username=root
- jdbc.password=123456
root和123456后面都有空格,这个真是肉眼发现不了啊。。。。所以删掉空格就好了
2.用户没有权限(骗自己?参考)
其实,这一点也是网上看别人这么说的,自己没用过。但是我想,如果像我前面第一点提到的,你能在命令行模式下用这个用户名和密码进入mysql的话,那肯定有权限了啊,干嘛还要赋予权限?。。。所以仅供参考。。。
- CREATE USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘你的密码‘;
- GRANT ALL PRIVILEGES ON *.* TO root@‘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) 解决方案