忘记MySQL root密码是使用数据库过程中比较常见的问题,mysqladmin作为MySQL官方提供的客户端管理工具,支持直接修改root用户的密码,不需要复杂的权限绕过操作,适合大多数常规场景使用。

mysqladmin修改密码的基本语法
mysqladmin修改密码的核心命令格式如下,需要提前知道原密码才能执行,这也是常规修改密码的场景:
# 基本语法,将new_password替换为你要设置的新密码 mysqladmin -u root -p password 新密码 # 执行后会提示输入原root密码,输入正确后即可完成修改
忘记原密码时的前置处理
如果已经完全忘记root密码,无法直接用上面的命令修改,需要先跳过权限验证启动MySQL服务,再执行密码修改操作,不同系统的操作方式略有区别。
Windows系统操作步骤
- 停止正在运行的MySQL服务,可以通过服务管理器或者命令行执行
net stop mysql - 打开命令行,进入MySQL的安装目录的bin文件夹,执行跳过权限验证的启动命令
- 新开一个命令行窗口,用mysqladmin执行密码修改操作
- 关闭跳过权限的MySQL进程,重启正常的MySQL服务
跳过权限启动的命令示例如下:
# 跳过权限表启动MySQL,注意路径替换为你自己的MySQL安装路径 mysqld --skip-grant-tables
Linux系统操作步骤
- 停止MySQL服务,执行
systemctl stop mysqld或者service mysql stop - 修改MySQL配置文件my.cnf,在[mysqld]模块下添加
skip-grant-tables配置 - 重启MySQL服务,此时登录不需要密码
- 执行密码修改操作后,删除配置文件中的
skip-grant-tables配置,再次重启服务
忘记密码时的mysqladmin修改示例
跳过权限验证后,就可以直接用mysqladmin修改root密码,不需要输入原密码:
# 跳过权限后执行,不需要输入原密码,直接设置新密码 mysqladmin -u root password 新密码 # 如果root已经有密码但忘记了,也可以用下面的命令强制修改 mysqladmin -u root -p password 新密码 # 此时提示输入密码直接回车即可
注意事项
- 修改密码后建议用新密码测试登录,确认修改生效
- 如果MySQL版本是5.7及以上,密码字段是
authentication_string,跳过权限后也可以直接更新系统表修改密码,示例如下:
-- 跳过权限后登录MySQL,执行以下SQL修改密码
USE mysql;
-- 将new_password替换为新密码
UPDATE user SET authentication_string=PASSWORD('new_password') WHERE User='root';
FLUSH PRIVILEGES;
- 操作完成后一定要关闭跳过权限的启动方式,避免数据库存在安全风险
- 如果修改后还是无法登录,检查是否修改了正确的root用户,部分环境存在多个root主机记录,需要对应修改
MySQLroot密码mysqladmin密码修改修改时间:2026-07-21 00:03:23