ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

错误原因1:用户名和密码输入错误

如果确定是这个错误,重新输入下用户名和密码就行了。 如果用户名和密码忘记了,不要慌,参考下面

首先进入到 my.cnf里面添加一个跳过权限验证的命令

vim /etc/my.cnf

添加skip-grant-tables,这样再次登陆就不用输入密码,直接回车就进入数据库了。

 

 添加完后按esc建,然后输入:wq,进行保存退出

修改完配置文件后,注意重启下服务才能生效

 service mysqld restart

然后登陆试试

然后进入到mysql数据库

use mysql;  --注意后面分号

show tables;

可以看到有一张user表,这个表里面就存的用户的登陆信息,我们查看一下user表里面都有啥字段

desc user;

 然后使用命令直接修改密码就行了,这里我修改root用户密码为123456为例

update user set authentication_string=password('123456') where user='root';

然后退出mysql,重启mysql服务

quit;

service mysqld restart

再次使用用户名和密码登陆即可。

错误原因2:root用户权限不足导致的

这个我参考博客设置的。

根据上一个问题原因设置skip-grant-tables 后,进入数据库使用如下命令即可

grant all privileges on *.* to 'root'@'%' identified by '123456';  

root是登陆用户,%代表的是所有ip地址都能访问, 最后就是密码。 grant是同意的意思,privileges是特权的意思,这句话就是授予root用户能在任何ip使用123456密码访问。

posted @ 2019-11-08 20:33  数据驱动  阅读(22344)  评论(0编辑  收藏  举报