如何修改用户密码_mysql密码修改方式

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

MySQL 用户密码修改有多种方式,具体取决于你当前的权限、MySQL 版本(5.7 / 8.0+)以及是否能正常登录。下面分几种常见场景说明操作方法,重点讲清命令逻辑和注意事项。

通过已登录 MySQL 修改当前用户密码

适用于你已用 root 或其他高权限账号成功登录 MySQL 命令行的情况。注意:MySQL 8.0+ 不再支持

SET PASSWORD = PASSWORD('xxx')
这类旧语法,必须使用新格式。

MySQL 8.0+ 推荐写法(安全且兼容):
ALTER USER CURRENT_USER() IDENTIFIED BY '新密码';

或指定用户名:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
MySQL 5.7 可用(但 8.0 已废弃):
SET PASSWORD = PASSWORD('新密码');

或针对特定用户:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密码');

忘记 root 密码时重置(跳过授权表)

适用于完全无法登录,需要绕过密码验证来重置 root 密码。操作需有服务器系统级权限(如 Linux 的 sudo)。

停止 MySQL 服务:
sudo systemctl stop mysqld
(CentOS/RHEL)或
sudo service mysql stop
(Ubuntu/Debian)
以跳过权限检查方式启动:
sudo mysqld_safe --skip-grant-tables --skip-networking &
另开终端,无密码登录:
mysql -u root
执行重置(注意:8.0+ 必须先刷新权限):
FLUSH PRIVILEGES;

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
重启 MySQL 正常服务:
先 kill mysqld_safe 进程,再
systemctl start mysqld

使用 mysqladmin 工具快速修改(仅限本地且知道原密码)

适合脚本化操作或临时修改,无需进入 MySQL 命令行。

修改本机 root 密码(需原密码):
mysqladmin -u root -p password "新密码"

执行后会提示输入当前密码
修改非 root 用户(如 user1):
mysqladmin -u root -p password "新密码" -h localhost -P 3306

再进 MySQL 手动更新 user 表或用 ALTER USER(推荐)

创建或修改远程用户密码(注意 host 和权限)

如果用户允许从其他 IP 登录(如

'user'@'%'
),修改密码后还需确认权限是否生效。

先确认用户是否存在及 host 值:
SELECT User, Host FROM mysql.user WHERE User = '用户名';
修改对应 host 的密码(例如允许所有 IP):
ALTER USER '用户名'@'%' IDENTIFIED BY '新密码';
刷新权限:
FLUSH PRIVILEGES;
确保防火墙和 MySQL 绑定地址(
bind-address
)允许远程连接

密码强度建议使用大小写字母+数字+符号组合,避免空格和特殊字符(如 @ / $ 在 shell 中可能需转义)。修改后可立即用新密码尝试连接验证,不复杂但容易忽略 host 匹配和权限刷新步骤。

相关推荐