MySQL5.7忘记root密码解决办法

在window下,
1.关闭MySQL服务。service mysqld stop/或停止phpStudy。
2.在MySQL下的my.ini文件里,在[mysqld]下面增加:skip-grant-tables
注意:这个命令能让MySQL免密码登录
3.启动MySQL,执行>mysql进入MySQL
4.修改密码。
mysql>update mysql.user set authentication_string=password(“新密码”) where user=“用户名”;
5.刷新,立即生效。flush privileges; ,重启MySQL。
5.去掉步骤2在my.ini文件里面添加的skip-grant-tables,否则MySQL还可以免密码登录。重启MySQL。
注意:
(1)执行update mysql.user set password=password(“新密码”) where user=”用户名”会报错:ERROR 1054(42S22) Unknown column ‘password’ in ‘field list’
错误原因:5.7版本的mysql数据库已经没有password这个字段了,这个字段被改成了authentication_stringupdate。
(2)若修改完密码不用命令flush privileges;,使用Navicate时会报错:Your password has expired.To log in you must change it using a client that supports expired passwords.

你可能感兴趣的:(MySQL,phpStudy)