Mysql8 忘记密码重置,以及问题解决
1.使用免密登录
找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf
在里最后加入
skip-grant-tables
重启MySQL服务
service mysql restart
Shutting down MySQL… SUCCESS!
Starting MySQL… SUCCESS!
重启成功
2.登录开始重置密码
直接回车登录,两次回车直接免密登录
mysql -uroot -p
由于使用的是mysql8所以要进行刷新权限
user mysql;
flush privileges;
使用命令重置密码
ALTER USER 'root'@'%' IDENTIFIED BY '这里填写你的密码';
如果报错
ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'%'
可能是你的用户没有root或这写的%不对
使用命令查看用户有哪些
select user,host from user;
我得到,说明我的没有root用户所以我不能使用这个去重置root用户密码
+------------------+-----------+
| user | host |
+------------------+-----------+
| my | % |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| my | localhost |
+------------------+-----------+
5 rows in set (0.00 sec)
大部分人的是,如果有百分号就可以去重置百分号的,没有百分号去重置localhost的
例如:ALTER USER 'root'@'localhost' IDENTIFIED BY '这里填写你的密码';
+------------------+-----------+
| user | host |
+------------------+-----------+
| root | % |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+我的不是root用户,所以我的重置是这样写的
ALTER USER 'my'@'localhost' IDENTIFIED BY '密码';
重置成功:Query OK, 0 rows affected (0.01 sec)
exit
退出
回到1中删除
skip-grant-tables
重启MySQL服务
service mysql restart
Shutting down MySQL… SUCCESS!
Starting MySQL… SUCCESS!
重启成功
这样重置成功了,
我没有root用户,我想要root用户该怎么办呢?
下面方法:
登录进入MySQL
use mysql
#查看一些有哪些用户
select user,host from user;
#刷新权限
flush privileges;
#创建root用户
create user 'root'@'localhost' identified by '密码';
#开通权限
grant all privileges on *.* to 'root'@'localhost' WiTh Grant option;
#刷新权限
flush privileges;
这样就ok了,但是这里还没有开通远程
使用这个命令开通运程ok结束
UPDATE user SET host = '%' WHERE user = 'root';