mysql8.0版本下忘记密码时重置密码的方法
-
使用管理员权限打开cmd (搜索cmd, 右键点击"使用管理员身份运行")
-
命令行输入
net stop mysql;
运行后提示为
MySQL 服务正在停止. MySQL 服务已成功停止。
-
mysqld –skip-grant-tables
实测在mysql8.0中已失效, 现在使用另一个指令:mysqld --console --skip-grant-tables --shared-memory
-
另外打开一个cmd, 此时使用mysql可以无密码登录了
mysql -u root
-
8.0版本不允许在跳过策略 skip-grant-tables 时修改密码, 所以要先清空root用户的密码
update user set authentication_string = '' where user = 'root';
-
然后通过空密码正常访问数据库
mysql -u root -p
-
进入MySQL系统自带数据库: mysql数据库中, 执行更改密码语句
mysql> use mysql; mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新的密码';
mysql5.7以前的版本用 update user set password=password("新的密码") where user="root";
-
刷新权限后, 退出MySQL
mysql> flush privileges; mysql> exit;
然后就可以使用新的密码登录数据库了
错误处理
can't connect to mysql server on 'localhost'
windows 主机:
右键点击我的电脑→菜单中点击管理→服务和应用程序→服务→找到MySQL服务, 查看其状态, 若没有正在运行, 右键点击该服务, 选择启用