修改MySQL的root密码是数据库运维中的基础操作,不同场景下可以选择不同的方法完成修改,以下三种方法覆盖了绝大多数使用需求。

方法一:使用ALTER USER语句修改(已知当前密码)
如果当前可以正常登录MySQL的root账户,使用ALTER_USER语句是最规范的修改方式,该语句是MySQL官方推荐的密码修改语法,兼容性好且操作安全。
具体操作步骤如下:
- 首先使用当前root密码登录MySQL数据库
- 执行ALTER USER语句设置新密码
- 刷新权限使修改生效
对应的操作代码示例如下:
-- 登录MySQL,在终端执行以下命令,输入当前密码后进入数据库 mysql -u root -p -- 登录成功后,执行以下语句修改密码,将new_password替换为你要设置的新密码 ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; -- 刷新权限,确保密码修改生效 FLUSH PRIVILEGES;
注意新密码需要符合MySQL的密码策略要求,如果密码过于简单可能会执行失败,此时可以先调整密码策略或者设置复杂度更高的密码。
方法二:使用SET PASSWORD语句修改(已知当前密码)
除了ALTER USER语句,也可以使用SET_PASSWORD语句来修改root密码,这种方式同样适用于已知当前密码的场景,操作逻辑和ALTER USER类似。
具体代码示例如下:
-- 登录MySQL mysql -u root -p -- 执行SET PASSWORD语句修改密码,替换new_password为新密码 SET PASSWORD FOR 'root'@'localhost' = 'new_password'; -- 刷新权限 FLUSH PRIVILEGES;
如果是MySQL 5.7.6之前的版本,也可以使用SET PASSWORD = PASSWORD('new_password')的语法,不过该语法在后续版本中已经被废弃,不建议在新版本中使用。
方法三:使用mysqladmin工具修改(已知当前密码)
如果不想进入MySQL交互界面,也可以在终端直接使用mysqladmin工具完成密码修改,这种方式适合快速修改密码的场景。
操作命令如下,将old_password替换为当前密码,new_password替换为新密码:
mysqladmin -u root -p'old_password' password 'new_password'
执行命令后如果没有报错,说明密码修改成功,之后可以使用新密码登录验证。
忘记root密码时的修改方法
如果已经忘记了root密码,无法使用上述三种方法修改,需要先跳过权限验证启动MySQL,再重置密码,具体步骤如下:
- 关闭正在运行的MySQL服务,不同系统关闭命令不同,Linux系统可以执行
systemctl stop mysqld,Windows系统可以在服务管理中停止MySQL服务 - 跳过权限表启动MySQL,在终端执行以下命令:
mysqld --skip-grant-tables --user=mysql &
- 新开一个终端,直接输入
mysql -u root就可以无密码登录数据库 - 登录后先刷新权限,再使用ALTER USER语句修改密码:
FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
- 修改完成后关闭跳过权限的MySQL进程,重启正常的MySQL服务即可使用新密码登录
注意事项
- 修改密码后建议立即使用新密码测试登录,确认修改生效
- 如果root账户允许远程登录,需要同时修改'root'@'%'对应的密码,否则远程登录还是会使用旧密码
- 生产环境修改密码前建议先备份数据库,避免操作失误导致数据丢失
MySQLroot密码修改ALTER_USERSET_PASSWORDmysqladmin修改时间:2026-07-07 17:15:21