Mysql忘记密码怎么重置密码的几种实现方法

 更新时间:2023年10月17日 09:35:48   作者:卡尔特斯  
本文主要介绍了Mysql忘记密码怎么重置密码的几种实现方法,每种方法都有其适用的情况,根据具体情况选择合适的方法,具有一定的参考价值,感兴趣的可以了解一下

每种方法都有其适用的情况,根据具体情况选择合适的方法。无论选择哪种方法,请务必在重置密码后及时删除临时用户并重新启动 MySQL 服务。

一、使用 mysqladmin 重置密码

  • 停止服务

    # systemctl 启动的使用这个停止
    $ sudo systemctl stop mysql
    
    # mac 本机,可以使用这个或可视化界面停止
    $ sudo mysql.server stop
    
  • 使用 mysqld_safe 命令启动 MySQL 服务,跳过权限检查,执行后可能需要回车下

    $ sudo mysqld_safe --skip-grant-tables &
    
  • 登录 MySQL 服务,并使用 mysqladmin 命令重置密码

    # 无需密码,会直接登入
    $ mysql -u root  
    
    # 刷新权限
    mysql> FLUSH PRIVILEGES;  
    
    # 这里的 'new_password' 是要设置的新密码,可以根据需要进行修改。此命令将修改 root 用户在本地 MySQL 服务上的密码。
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
    
    # 修改好后退出 MySQL
    mysql> exit
    
  • 停止 MySQL 服务,并重新启动密码登入即可

    # 1、停止 MySQL 服务上面有,第一条就是
    
    # 2、重启启动 MySQL 服务,并使用密码登入
    # systemctl 启动的使用这个重新启动
    $ sudo systemctl start mysql
    # mac 本机,可以使用这个或可视化界面启动
    $ sudo mysql.server start
    
    # 3、密码登录
    $ mysql -u root -p
    
    # 附:如果再次使用 mysql -u root 这样免密登录是不成功的,停止重启后会失效。
    

二、使用 mysqld 重置密码

  • 停止服务

    # systemctl 启动的使用这个停止
    $ sudo systemctl stop mysql
    
    # mac 本机,可以使用这个或可视化界面停止
    $ sudo mysql.server stop
    
  • 使用 mysqld_safe 命令启动 MySQL 服务,跳过权限检查,执行后需要回车下

    $ sudo mysqld_safe --skip-grant-tables &
    
  • 登录 MySQL 服务,并创建新的临时用户,拥有 root 权限

    # 无需密码,会直接登入
    $ mysql -u root  
    
    # 刷新权限
    mysql> FLUSH PRIVILEGES;  
    
    # 创建一个临时用户 temp_root 及 temp_password
    mysql> CREATE USER 'temp_root'@'localhost' IDENTIFIED BY 'temp_password';  
    
    # 设置权限
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'temp_root'@'localhost' WITH GRANT OPTION;
    
    # 修改好后退出 MySQL
    mysql> exit
    
  • 停止 MySQL 服务,并重新启动密码登入,并使用 ALTER 命令修改 root 用户密码

    # 1、停止 MySQL 服务上面有,第一条就是
    
    # 2、重启启动 MySQL 服务,并使用密码登入
    # systemctl 启动的使用这个重新启动
    $ sudo systemctl start mysql
    # mac 本机,可以使用这个或可视化界面启动
    $ sudo mysql.server start
    
    # 3、临时用户密码登录
    $ mysql -u temp_root -p
    
    # 4、这里的 'new_password' 是要设置的新密码,可以根据需要进行修改。此命令将修改 root 用户在本地 MySQL 服务上的密码。
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
    
    # 5、修改好后退出 MySQL
    mysql> exit
    
    # 6、停止 MySQL 服务上面有,第一条就是
    
    # 附:如果再次使用 mysql -u root 这样免密登录是不成功的,停止重启后会失效。
    
  • 再次使用 mysqld_safe 命令启动 MySQL 服务,跳过权限检查,删除临时用户

    $ sudo mysqld_safe --skip-grant-tables &  
    
    $ mysql -u root  
    
    mysql> FLUSH PRIVILEGES;  
    
    mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'temp_root'@'localhost';  
    
    mysql> DROP USER 'temp_root'@'localhost';  
    
    mysql> exit
    
  • 再次重启 MySQL 服务,并使用修改好的 root 密码登入

    # 1、停止 MySQL 服务上面有,第一条就是
    
    # 2、重启启动 MySQL 服务,并使用密码登入
    # systemctl 启动的使用这个重新启动
    $ sudo systemctl start mysql
    # mac 本机,可以使用这个或可视化界面启动
    $ sudo mysql.server start
    
    # 3、密码登录
    $ mysql -u root -p
    

三、使用 MySQL 安全性模式重置密码

  • 停止服务

    # systemctl 启动的使用这个停止
    $ sudo systemctl stop mysql
    
    # mac 本机,可以使用这个或可视化界面停止
    $ sudo mysql.server stop
    
  • 启动 MySQL 安全性模式

    $ sudo mysqld_safe --skip-grant-tables --skip-networking &
    
  • 登录 MySQL 服务,并使用 mysqladmin 命令重置密码

    # 无需密码,会直接登入
    $ mysql -u root  
    
    mysql> FLUSH PRIVILEGES;  
    
    # 这里的 'new_password' 是要设置的新密码,可以根据需要进行修改。此命令将修改 root 用户在本地 MySQL 服务上的密码。
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
    
    # 修改好后退出 MySQL
    mysql> exit
    
  • 停止 MySQL 安全性模式

    $ sudo killall mysqld_safe
    
    # 如果在本地机器上执行上面命令无法停止安全模式,可以通过杀死进程方式解决
    # 1、列出 mysqld_safe 的进程
    $ ps aux | grep mysqld_safe
    
    # 2、拿到 PID 全部杀死,应该是第二列,就几位纯数字的,如果不知道可以单独输出 $ ps aux 看一下。
    $ sudo kill -9 xxx xxx ...
    
  • 停止 MySQL 服务,并重新启动密码登入即可

    # 1、停止 MySQL 服务上面有,第一条就是,如果通过 $ sudo kill 可以一起就杀死了。
    
    # 2、重启启动 MySQL 服务,并使用密码登入
    # systemctl 启动的使用这个重新启动
    $ sudo systemctl start mysql
    # mac 本机,可以使用这个或可视化界面启动
    $ sudo mysql.server start
    
    # 3、密码登录
    $ mysql -u root -p
    
    # 附:如果再次使用 mysql -u root 这样免密登录是不成功的,停止重启后会失效。
    

四、使用 my.cnf 重置密码

  • 该方式跟上面 方式一 基本一致,只是将命令中的跳过权限指令写到 my.cnf 中,修改好后再移除。

  • 在修改 my.cnf 之前一定要关闭 mysql 进程,关闭 mysql,不然可能会遇到 mysql 的 sock 不能连接的问题!

  • 停止服务

    # systemctl 启动的使用这个停止
    $ sudo systemctl stop mysql
    
    # mac 本机,可以使用这个或可视化界面停止
    $ sudo mysql.server stop
    
  • 打开 my.cnf,没有则创建一个

    $ sudo vim /etc/my.cnf
    

    进入 vim 编辑器编辑之后,找到 [mysqld],按键盘的 i 键进入编辑模式,在 [mysqld] 后面任意一行添加 skip-grant-tables 用来跳过密码验证的过程。按 ESC 退出编辑,键入 :wq,回车即保存并退出。

    [mysqld]
    skip-grant-tables
    
  • 启动 mysqld 服务

     # systemctl 启动的使用这个重新启动
    $ sudo systemctl start mysql
    
    # mac 本机,可以使用这个或可视化界面启动
    $ sudo mysql.server start
    
  • 登录 MySQL 服务,并使用 mysqladmin 命令重置密码

    # 无需密码,会直接登入
    $ mysql -u root  
    
    # 这里的 'new_password' 是要设置的新密码,可以根据需要进行修改。此命令将修改 root 用户在本地 MySQL 服务上的密码。
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
    
    # 刷新权限
    mysql> FLUSH PRIVILEGES;  
    
    # 修改好后退出 MySQL
    mysql> exit
    
  • 再次打开 my.cnf,移除刚才添加的 skip-grant-tables,保存重启 MySQL 服务,并使用新的密码登入。

到此这篇关于Mysql忘记密码怎么重置密码的实现步骤的文章就介绍到这了,更多相关Mysql忘记密码重置密码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 10个MySQL 高级用法

    10个MySQL 高级用法

    这篇文章分享了10个MySQL高级SQL技巧,包括CTE、窗口函数、条件聚合、自连接、EXISTS替代IN、JSON函数、生成列、多表更新、GROUP_CONCAT和INSERT...ON DUPLICATE KEY UPDATE,这些技巧可以让数据库操作更高效、简洁,感兴趣的朋友跟随小编一起看看吧
    2026-03-03
  • mysql中event的用法详解

    mysql中event的用法详解

    本篇文章是对mysql中event的用法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • mysql实现merge into问题

    mysql实现merge into问题

    文章介绍了在数据库操作中,如何使用`REPLACE INTO`和`INSERT INTO ON DUPLICATE KEY UPDATE`语句进行数据更新和插入操作,如果不想创建唯一性索引,可以通过存储过程实现,文章通过实验和验证,展示了这两种方法的实际效果
    2024-12-12
  • Mysql提取JSON对象和数组的方法示例代码

    Mysql提取JSON对象和数组的方法示例代码

    在MySQL中,JSON数据类型是一种特殊的数据类型,它可以存储JSON格式的数据,下面这篇文章主要介绍了Mysql提取JSON对象和数组的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-09-09
  • Mysql备份多个数据库代码实例

    Mysql备份多个数据库代码实例

    这篇文章主要介绍了Mysql备份多个数据库代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • MySQL中索引失效场景,原因以及解决方法介绍

    MySQL中索引失效场景,原因以及解决方法介绍

    这篇文章主要为大家详细介绍了MySQL中索引失效场景,原因以及解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-07-07
  • MySQL中Update、select联用操作单表、多表,及视图与临时表的区别

    MySQL中Update、select联用操作单表、多表,及视图与临时表的区别

    本篇文章给大家分享了MySQL中Update、select联用操作单表、多表,及视图与临时表的区别,有兴趣的朋友学习下吧。
    2018-06-06
  • MySQL的主从复制步骤详解及常见错误解决方法

    MySQL的主从复制步骤详解及常见错误解决方法

    这篇文章主要介绍了MySQL的主从复制步骤详解及常见错误解决方法,文中主张同步时跳过临时错误,并对Slave_IO_Running: No错误的解决给出了方案,需要的朋友可以参考下
    2016-02-02
  • Mysql两表联合查询的四种情况总结

    Mysql两表联合查询的四种情况总结

    今天小编就为大家分享一篇关于Mysql两表联合查询的四种情况总结,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • MySQL中的数据库约束用法及说明

    MySQL中的数据库约束用法及说明

    本文介绍了MySQL数据库中的约束类型,包括notnull、unique、default、primary key、foreign key和check,这些约束类型用于实现对插入数据的管控,确保数据的完整性和逻辑性
    2026-03-03

最新评论