MySQL修改用户密码有四种常用方法:1. ALTER USER(推荐,5.7.6+);2. SET PASSWORD(兼容旧版,8.0不推荐);3. 忘记root密码时跳过权限表重置;4. mysqladmin命令行工具修改(需原密码或免密配置)。

MySQL 修改用户密码有多种方式,具体取决于 MySQL 版本(5.7、8.0+)、当前登录权限以及是否记得原密码。以下是最常用且安全的几种方法,覆盖不同场景。
使用 ALTER USER 修改(推荐,MySQL 5.7.6+)
这是官方推荐的方式,语法清晰、支持密码策略校验,适用于已登录且有 CREATE USER 或 UPDATE 权限的账户(如 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() 函数,直接写明文密码即可。
51shop 由 PHP 语言开发, 使用快速的 MySQL 数据库保存数据 ,为中小型网站实现网上电子商务提供一个完美的解决方案.一、用户模块1. 用户注册:用户信息包括:用户ID、用户名、用户密码、性别、邮箱、省份、城市、 联系电话等信息,用户注册后不能立即使用,需由管理员激活账号,才可使用(此功能管理员可设置)2. 登录功能3. 资料修改:用户可修改除账号以后的所有资料4. 忘记密码:要求用
- 修改当前用户:
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 "新密码"









