Mysql 5.7 忘记root密码或重置密码的详细方法
1、修改配置文件my.cnf 按i编辑
[root@mihutao ~]# vim /etc/my.cnf
在[mysqld]中添加
skip-``grant``-tables
例如:
[mysqld]``**skip-``grant``-tables**``datadir=/var/lib/mysql``socket=/var/lib/mysql/mysql.sock
键盘 Esc 保存修改 :wq退出
2、重启mysql服务
service mysqld restart
3、用户登录
mysql -uroot -p (直接点击回车,密码为空)
选择数据库
use mysql;
下面我们就要修改密码了
以前的版本我们用的是以下修改
update` `user` `set` `password``=``password``(``'root'``) ``where` `user``=``'root'``;
但是在5.7版本中不存在password字段,所有我们要用以下修改进行重置密码
update` `user` `set` `authentication_string=``password``(``'123456'``) ``where` `user``=``'root'``;
执行
flush ``privileges``;
4、退出mysql
quit;
5、将最开始修改的配置文件my.cnf中的skip-grant-tables删除
6、重启mysql
7、当你登陆mysql之后你会发现,当你执行命令时会出现
ERROR 1820 (HY000): You must reset your ``password` `using ``ALTER` `USER` `statement;
这是提示你需要修改密码
当你执行了
SET` `PASSWORD` `= ``PASSWORD``(``'123456'``);
如果执行成功后面的就不要看了,纯属浪费时间!
如果出现:
ERROR 1819 (HY000): Your ``password` `does ``not` `satisfy the ``current` `policy requirements
你需要执行两个参数来把mysql默认的密码强度的取消了才行
set` `global` `validate_password_policy=0; ``set` `global` `validate_password_mixed_case_count=2;
这时你再执行
SET` `PASSWORD` `= ``PASSWORD``(``'123456'``);
本文来自博客园,作者:迷糊桃,转载请注明原文链接:https://www.cnblogs.com/mihutao/p/16814497.html