mysql8.0版本下忘记密码时重置密码的方法

  1. 使用管理员权限打开cmd (搜索cmd, 右键点击"使用管理员身份运行")

  2. 命令行输入

    net stop mysql;
    

    运行后提示为

    MySQL 服务正在停止.
    MySQL 服务已成功停止。
    
  3. mysqld –skip-grant-tables实测在mysql8.0中已失效, 现在使用另一个指令:

    mysqld --console --skip-grant-tables --shared-memory
    
  4. 另外打开一个cmd, 此时使用mysql可以无密码登录了

    mysql -u root
    
  5. 8.0版本不允许在跳过策略 skip-grant-tables 时修改密码, 所以要先清空root用户的密码

    update user set authentication_string = '' where user = 'root'; 
    
  6. 然后通过空密码正常访问数据库

    mysql -u root -p
    
  7. 进入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";

  8. 刷新权限后, 退出MySQL

    mysql> flush privileges;
    
    mysql> exit;
    

然后就可以使用新的密码登录数据库了

错误处理

can't connect to mysql server on 'localhost'

windows 主机:

右键点击我的电脑→菜单中点击管理→服务和应用程序→服务→找到MySQL服务, 查看其状态, 若没有正在运行, 右键点击该服务, 选择启用

posted on 2022-11-03 11:31  元悕  阅读(222)  评论(0编辑  收藏  举报

导航