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

6次阅读

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

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

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 mysqldcentos/RHEL)或 sudo service mysql stopubuntu/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 “新密码”
text=ZqhQzanResources