mysql如何修改用户密码_mysql密码修改方式汇总

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

MySQL 修改用户密码有多种方式,具体取决于 MySQL 版本(5.7、8.0+)、当前登录权限以及是否记得原密码。以下是最常用且安全的几种方法,覆盖不同场景。

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

这是官方推荐的方式,语法清晰、支持密码策略校验,适用于已登录且有 CREATE USERUPDATE 权限的账户(如 root)。

修改当前登录用户的密码:
ALTER USER USER() IDENTIFIED BY '新密码';
修改指定用户(需用户名和主机名匹配):
ALTER USER 'username'@'localhost' IDENTIFIED BY '新密码';
若需同时设置密码过期或锁定状态,可追加:
PASSWORD EXPIRE NEVER ACCOUNT UNLOCK;

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

适用于 MySQL 5.7 及更早版本,8.0 中仍可用但已不推荐。注意:MySQL 8.0.12+ 已弃用 PASSWORD() 函数,直接写明文密码即可。

修改当前用户:
SET PASSWORD = '新密码';
修改其他用户(需 SUPER 权限):
SET PASSWORD FOR 'username'@'localhost' = '新密码';

忘记 root 密码时的重置流程(Linux/Windows)

当无法登录且无其他高权限账户时,需跳过权限验证启动 MySQL,再更新密码表。

停止 MySQL 服务:
sudo systemctl stop mysqld(CentOS/RHEL)或 sudo service mysql stop(Ubuntu/Debian)
以跳过授权表方式启动:
sudo mysqld_safe --skip-grant-tables --skip-networking &
另开终端登录(无需密码):
mysql -u root
执行更新(MySQL 5.7):
UPDATE mysql.user SET authentication_string=PASSWORD('新密码') WHERE User='root';
MySQL 8.0+ 改为:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
刷新权限并重启服务:
FLUSH PRIVILEGES;,然后正常启动 MySQL

通过 mysqladmin 命令行工具修改(适合脚本或运维)

无需进入 MySQL 客户端,适合自动化场景,但要求知道原密码(除非是 root 且配置了 .my.cnf)。

修改本地 root 密码(已知原密码):
mysqladmin -u root -p password "新密码"(执行后会提示输入原密码)
若已配置免密登录(如 ~/.my.cnf),可省略 -p:
mysqladmin -u root password "新密码"

相关推荐