1、编辑MySQL配置文件
vim /etc/my.cnf 加入 skip-grant-tables ps: 跳过权限验证,可免密码登录
如下图
2、重启mysql
service mysqld restart
3、登录MySQL
mysql -u root -p
select version(); 查看版本
| version() |
+-----------+
| 5.7.28 |
4、修改密码
5.7版本前的mysql运行: update user set password=password("你的密码") where user="用户";
5.7版本后的mysql运行:update mysql.user set authentication_string=password('你的密码') where user='用户';
5、exit; #退出
6、编辑my.cnf文件删掉或者注释skip-grant-tables 这一行,
7、再次重启MySQL,/etc/init.d/mysqld restart,否则MySQL仍能免密码登录
mysql -u root -p输入密码
!!!!!!以下是 mysql5.7.28 参考这里操作!!!!!!!!!!!!!!!!!!!
#一定要先刷新权限
flush privileges;
情景一:单纯忘记密码
use mysql;
alter user root@'%' identified by '密码';
flush privileges;
情景二:忘记密码并删除了root用户
创建用户
CREATE USER 'root'@'%' IDENTIFIED BY '密码';
授权登录
update user set host='%' where user='root';
授权操作
GRANT all privileges ON *.* TO 'root'@'%' IDENTIFIED BY "密码";
刷新mysql 权限
flush privileges;
其他和上面的5,6,7是一样的
亲测,按照上面步骤 确实有效果
学习笔记, 仅供参考!如有侵权,请联系删除