mysql忘记密码解决:
多次输入都错误,出现下面的提示
Access denied for user 'root'@'localhost' (using password: YES)
解决:
1.关闭mysql
service mysqld stop
2.mysql停止后输入
mysqld --shared-memory --skip-grant-tables
3.重新打开一个会话
mysql -uroot -p -- 不输入密码,直接回车
若3成功,直接进入第9步,我的没有成功,所以进第4-8步
4.第3步没有成功,出现如下错误
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
5.进入报错出现的路径
cd /var/lib/mysql/
6.找到文件mysql.sock,并且删除
rm -rf mysql.sock
7.然后停止mysql服务
systemctl stop mysqld
8.再重启mysql服务
systemctl start mysqld --执行完回到第3步
9.执行mysql -uroot -p后,如下便继续
10.使用数据库
use mysql;
11.update user set authentication_string=‘’ where user=‘root’; ,将authentication_string置空。
设置密码:
alter user 'root'@'localhost' identified by 'newpassword'; -- newpassword是要设的新密码。
12.我的又报错:
The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
13.出现12的情况执行下面代码一下
flush privileges;
14.再次执行11的代码,是的,我的又报错了
Your password does not satisfy the current policy requirements -- 盲猜是当前设置的密码强度不符合这个政策,可以改政策,也可以改密码强度,我选了改强度
15.当我把密码强度加强后(有数字,大小写字母,还有特殊符号),又报了下面的错,大概意思@得不对,哈哈
Operation ALTER USER failed for 'root'@'localhost'
16.执行
select user,host from user;
得到
17.我们看到,root对应的host是%,所以这次@%
alter user 'root'@'localhost' identified by 'newpassword';
out:
终于搞定了,接下来再
flush privileges; -- 注:此步不可省略
现在按ctrl+z退出mysql,我们再次使用密码登录就可以了。关注下方公众号,获取更多小技巧。