news 2026/5/1 6:29:10

MySQL root用户密码忘记怎么办(Reset root account password)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL root用户密码忘记怎么办(Reset root account password)

在使用MySQL数据库的的过程中,不可避免的会出现忘记密码的现象。普通用户的密码如果忘记,可以用更高权限的用户(例如root)进行重置。但是如果root用户的密码忘记了,由于root用户本身就是最高权限,那这个方法就行不通了。本文介绍2种在忘记root用户用户密码的情况下,如何进行重设。

文章目录
  • 一、使用–init-file参数重设
    • 1.1 停止mysql进程
    • 1.2 创建初始化文件
    • 1.3 使用init-file参数重启数据库
  • 二、使用–skip-grant-tables参数重设
    • 2.1 停止mysqld进程
    • 2.2 使用skip-grant-tables重启数据库
    • 2.3 修改root密码
    • 2.4 重启数据库

一、使用–init-file参数重设

由于忘记了root密码,我们是无法通过root用户连接到数据库的,因此也无法通过客户端执行alter user或set password命令来重置密码。MySQL提供了init-file参数,在启动时可以读取文件,我们将修改root用户密码的SQL放在文件中,通过重启来执行修改密码命令。

假设我想要将root密码修改为’abc123’,先测试一下,密码是不对的:

mysql -uroot -pabc123

1.1 停止mysql进程

下面演示的是通过kill命令杀死mysqld进程,如果可以正常停止也可以。
首先通过ps -ef | grep mysqld 查询mysql数据库的进程号:

ps -ef | grep mysqld


这里显示数据库相关的进程有2个(第3个是grep命令),由于我是通过mysqld_safe脚本启动的数据库,因此有一个额外的守护进程:
进程号为23619的mysqld_safe守护进程,负责监控mysqld的状态
进程号为24846的mysqld进程,这个是数据库服务进程(它的父进程号23619)

查询到进程号后,使用kill命令依次将mysqld_safe和mysqld杀死,注意要先杀mysqld_safe,如果先杀mysqld,那么守护进程检测到mysqld进程挂了,会立刻将mysqld重新启动:

kill -9 23619 kill -9 24846


如果只有一个mysqld进程,那么只要将其杀掉即可。

1.2 创建初始化文件

创建一个文本文件,名称随意(这里是reset_password.sql),里面写上更改root密码的SQL:

alter user 'root'@'localhost' identified by 'abc123';

文件创建后给mysql用户增加读取权限(通常使用操作系统的mysql用户来启动数据库进程)

chmod a+r reset_password.sql

1.3 使用init-file参数重启数据库

使用–init-file=/root/reset_password.sql 参数启动数据库,启动时会自动执行文件种的密码修改SQL:

mysqld_safe --init-file=/root/reset_password.sql & mysql -uroot -pabc123


可以看到启动后,root用户的密码已经成功被修改为’abc123’,最后将reset_password.sql文件删除即可。

二、使用–skip-grant-tables参数重设

MySQL的skip-grant-tables参数可以指定在启动时忽略权限认证,这意味着任何用户都可以不用密码登陆数据库,并且具有所有权限,这是一个危险的状态。因此当使用skip-grant-tables启动时,MySQL会自动启用skip-networking参数,禁止所有远程连接。

2.1 停止mysqld进程

停止或杀掉mysqld进程,参照上一节内容。

2.2 使用skip-grant-tables重启数据库

使用skip-grant-tables参数启动数据库,并使用root用户登陆:

mysqld_safe --skip-grant-tables & mysql -uroot -p


这里提示了Enter password:,但实际是不需要输入密码的,直接回车便可登陆。

2.3 修改root密码

加载权限表并修改root密码,这里将密码修改为abc456:

flush privileges; alter user 'root'@'localhost' identified by 'abc456';

2.4 重启数据库

使用正常状态重启数据库

mysqladmin shutdown mysqld_safe & mysql -uroot -pabc456

可以看到root用户的密码成功被修改为abc456

以上即是MySQL在忘记root用户密码的两种修改方式,希望对你有帮助。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 6:28:31

知识图谱:度中心性解密

知识图谱的 “度中心性” 是什么意思 核心概念解释 知识图谱的“度中心性”量化术语重要性,可以通俗地理解为:在一个由概念和实体组成的知识网络(图谱)中,一个节点(术语)的重要性可以通过它与其它节点直接连接的“数量”来衡量。连接越多,它就越中心、越重要。 知识图…

作者头像 李华
网站建设 2026/4/23 6:59:10

Python+flask的高校学生综合医疗健康服务管理系统设计与实现_srf7myyx-Pycharm vue django项目源码

目录高校学生综合医疗健康服务管理系统摘要关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!高校学生综合医疗健康服务管理系统摘要 该系统基于PythonFlask框架开发,整合…

作者头像 李华
网站建设 2026/4/17 5:08:44

NetPad:一个.NET开源、跨平台的C#编辑器

前言今天大姚给大家分享一个基于.NET开源、跨平台的C#编辑器和游乐场:NetPad。项目介绍NetPad是一个基于.NET开源(MIT License)、跨平台的C#编辑器和游乐场,它允许用户立即运行C#代码,无需创建和管理项目。项目技术栈.…

作者头像 李华
网站建设 2026/4/16 10:37:35

【毕业设计】基于深度学习python-CNN的水果识别

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/23 18:01:36

一文读懂监督、无监督、自监督与半监督学习:小白到大模型必备知识

文章系统介绍机器学习的四大范式:监督学习依赖标注数据训练模型;无监督学习挖掘数据内在特征完成任务;半监督学习结合少量标注和大量无标签数据提升性能;自监督学习通过设计辅助任务从无标签数据中生成监督信号。这些方法各有特点…

作者头像 李华