如何在mysql中修改用户密码_mysql用户密码修改方法

来源:这里教程网 时间:2026-02-28 20:50:00 作者:

在 MySQL 中修改用户密码,主要取决于你使用的 MySQL 版本(5.7 与 8.0+ 差异较大),以及你当前是否拥有管理员权限。最常用且推荐的方式是使用

ALTER USER
语句,安全、标准、兼容性好。

使用 ALTER USER 修改密码(推荐,MySQL 5.7.6+)

这是官方推荐方式,适用于有

CREATE USER
UPDATE
权限的用户(如 root)。

登录 MySQL:`mysql -u root -p` 执行命令(以修改用户 'testuser'@'localhost' 为例):
ALTER USER 'testuser'@'localhost' IDENTIFIED BY 'NewPass123!';
立即生效,无需刷新权限;但若修改的是当前登录用户,下次登录需用新密码

使用 SET PASSWORD 修改密码(兼容旧版本)

适用于 MySQL 5.7 及更早版本,8.0 仍支持但已不推荐。

语法示例:
SET PASSWORD FOR 'testuser'@'localhost' = 'NewPass123!';
注意:MySQL 8.0+ 中该语句要求密码必须用
PASSWORD()
函数加密(已弃用),或直接传明文(需开启老式认证插件),易出错,建议优先用
ALTER USER

忘记 root 密码时的重置方法(Linux/macOS)

适用于无法登录、需跳过权限验证重置 root 密码的情况:

停止 MySQL 服务:
sudo systemctl stop mysqld
(或
mysqld_safe
以跳过权限表方式启动:
sudo mysqld_safe --skip-grant-tables --skip-networking &
另开终端登录:
mysql -u root
(无需密码)
执行更新(MySQL 8.0+):
FLUSH PRIVILEGES;

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewRootPass123!';
重启正常 MySQL 服务

检查并确认用户认证插件(避免登录失败)

MySQL 8.0 默认使用

caching_sha2_password
插件,部分客户端不兼容,可能导致改密后无法登录:

查看用户插件:
SELECT user, host, plugin FROM mysql.user WHERE user='testuser';
如需兼容老客户端,可同时指定插件:
ALTER USER 'testuser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NewPass123!';

相关推荐