1045-Access denied for user 'root'@'localhost'解决方法

1、出现这个问题的原因之一是权限的问题,也就是说你的电脑可能没有权限访问mysql数据库。

讲道理这种情况其实基本上不该遇到,因为我们在安装mysql之后,root其实是有最高权限的,而且很少会有人去修改root的权限。

这个问题的解决方法就是授权。授权命令大概是这样的:

grant all privileges on *.* to 'root'@'我电脑的ip地址' identified by '密码';


如果你不是用root登陆的,那么就把root改成你的登陆名。
有的同学可能不知道这个命令往哪里写,

开始——运行——输入“cmd”——点击确定

这样就打开了我们的命令提示符界面:

然后找到我们的mysql的安装目录,将目录复制到命令提示符中。如图:

(cd 是什么意思我想不用特别解释了吧)

然后进入目录下的bin文件:

然后输入 mysql -u root -p 如图:

在Enter password: 后面输入你的密码。点击回车。

如果密码正确,会出现Welcome 的字符。

如图:

这样就成功进入了mysql数据库。

当然如果你已经设置了环境变量,那么不用进入mysql目录,直接输入mysql -uroot就可以了。

当然,你也可以直接打开mysql下的bin窗口,然后按住shift+鼠标右键,选择“在此处打开命令窗口”,就可以直接在bin目录下打开命令提示符窗口了。

接下来就简单了,直接将上面的代码修改一下就可以用了。比如我的电脑的ip地址是:192.168.0.103,我的root密码是:123456,那么我就可以将授权的语句改成:

grant all privileges on *.* to 'root'@'192.168.0.103' identified by '123456';
如果你是本地登录的,那么:
grant all privileges on *.* to 'root'@'localhost' identified by '123456';
当然你也可以直接改成这样:
grant all privileges on *.* to 'root'@'%' identified by '123456';
就可以给所有ip都设定root登陆了。
如果授权成功,会有Query OK的提示。
然后:
flush privileges;
这个是刷新授权的意思,如果没有这句话,授权可能无法立刻生效。
exit;
这个是退出的意思。
授权完成以后,你可以再尝试一下登陆,看看能不能登上。反正我登陆不上。

原文地址:https://www.cnblogs.com/telwanggs/p/12054792.html