推荐使用ALTER USER修改MySQL密码,如ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass123!'; MySQL 8.0中SET PASSWORD需用SET PASSWORD FOR 'user'@'host' = 'password'; mysqladmin工具适用于命令行操作;直接更新mysql.user表仅用于忘记密码等紧急情况,操作前应备份权限信息。

在使用 MySQL 数据库时,修改用户密码是常见的管理操作。无论是出于安全考虑还是账户管理需要,掌握多种修改密码的方法非常实用。以下是几种常用的 MySQL 修改用户密码的方式,适用于不同版本和使用场景。
1. 使用 ALTER USER 命令(推荐方式,MySQL 5.7.6+)
从 MySQL 5.7.6 开始,官方推荐使用 ALTER USER 语句来修改用户密码,语法清晰且安全性高。
ALTER USER '用户名'@'主机' IDENTIFIED BY '新密码';
示例:
51shop 由 PHP 语言开发, 使用快速的 MySQL 数据库保存数据 ,为中小型网站实现网上电子商务提供一个完美的解决方案.一、用户模块1. 用户注册:用户信息包括:用户ID、用户名、用户密码、性别、邮箱、省份、城市、 联系电话等信息,用户注册后不能立即使用,需由管理员激活账号,才可使用(此功能管理员可设置)2. 登录功能3. 资料修改:用户可修改除账号以后的所有资料4. 忘记密码:要求用
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass123!';
执行后需运行 FLUSH PRIVILEGES; 刷新权限,但 ALTER USER 会自动刷新,无需手动操作。
2. 使用 SET PASSWORD 命令
该方法适用于当前登录用户修改自己的密码,或管理员为其他用户设置密码。
SET PASSWORD FOR '用户名'@'主机' = PASSWORD('新密码');
注意:在 MySQL 8.0 中,PASSWORD() 函数已被弃用,应使用如下格式:
SET PASSWORD FOR '用户名'@'主机' = '新密码';
示例:
SET PASSWORD FOR 'demo'@'%' = 'SecurePass456';
3. 使用 mysqladmin 工具(命令行方式)
在操作系统命令行中,可以使用 mysqladmin 工具修改密码,适合脚本化操作。
mysqladmin -u 用户名 -p password "新密码"
说明:执行后会提示输入旧密码,验证通过后设置新密码。例如:
mysqladmin -u root -p password "MyNewRootPass"
4. 直接更新 mysql.user 表(不推荐,仅应急使用)
在特殊情况下(如忘记 root 密码),可通过跳过权限检查进入数据库,然后直接修改 user 表。
步骤如下:
- 停止 MySQL 服务
- 启动时添加 --skip-grant-tables 参数
- 登录 MySQL 并执行:
UPDATE mysql.user SET authentication_string = PASSWORD('新密码') WHERE User = 'root' AND Host = 'localhost';
MySQL 8.0+ 使用:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
- 执行 FLUSH PRIVILEGES;
- 重启 MySQL 服务(去掉 skip-grant-tables)
基本上就这些常用方法。日常管理推荐使用 ALTER USER,安全又简洁。紧急情况再考虑修改系统表。操作前建议备份用户权限信息,避免误操作导致无法登录。









