Access denied for user root@localhost (using passwor:yes)问题

如标题所示,这类的问题一般都是由于密码错误导致的,解决的办法就是重置密码;
假设我们使用的是root账户,重置密码的基本思路如下:

1、放开mysql密码验证的配置;
2、修改mysql的root密码为你自设密码;
3、再将mysql密码验证加上;

1、跳过mysql密码验证过程;

#vim /etc/my.cnf 

在里面搜索mysqld,在里面有一个[mysqld]的文档段,在[mysqld]配置下加上skip-grant-tables 

保存并退出

2、重启mysql服务

如果是docker就直接docker restart mysql 或者 docker restart percona 
如果是非docker 使用 /etc/init.d/mysql restart(有些用户可能需要使用/etc/init.d/mysqld restart)

3、修改mysql的root密码

上面跳过密码验证并重启之后,进去mysql是不需要任何密码校验的;
进入到mysql里面进行如下操作进行修改mysql的root密码
1
2
3
4
- use mysql;
- update user set password = password('新密码') where user = 'root';
- flush privileges;
- quit;
此时的mysql的root密码已经被更改

4、改回mysql的密码校验

再次进入到 /etc/my.cnf里面 
找到之前新增的内容的地方,删掉或者注释

最后一步,一定记得重启mysql服务

如此就搞定了!
谢翔 wechat
坚持原创技术分享,您的支持将鼓励我继续创作!
-------------本文结束感谢您的阅读-------------
0%