17370845950

mysql如何修改用户密码_mysql用户密码修改方法
答案:修改MySQL用户密码常用方法包括ALTER USER、SET PASSWORD、更新mysql.user表和mysqladmin工具。推荐使用ALTER USER '用户名'@'主机' IDENTIFIED BY '新密码';适用于MySQL 5.7.6及以上版本,执行后需运行FLUSH PRIVILEGES;刷新权限。

在MySQL中修改用户密码有多种方式,具体方法取决于你使用的MySQL版本以及当前的权限情况。以下是几种常见的修改用户密码的方法,适用于大多数场景。

使用ALTER USER命令(推荐,MySQL 5.7.6及以上)

这是MySQL官方推荐的方式,适用于较新版本的MySQL(5.7.6+)。

语法:

ALTER USER '用户名'@'主机' IDENTIFIED BY '新密码';

示例:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass123!';

执行后运行FLUSH PRIVILEGES;刷新权限即可生效。

使用SET PASSWORD命令

适用于当前登录用户修改自己的密码,或管理员修改其他用户密码。

修改自己密码:

SET PASSWORD = PASSWORD('新密码');

修改指定用户密码(需有权限):

SET PASSWORD FOR '用户名'@'主机' = PASSWORD('新密码');

注意:从MySQL 8.0开始,PASSWORD()函数已被弃用,应直接使用字符串:

SET PASSWORD FOR 'user'@'localhost' = 'new_password';

直接更新mysql.user表(不推荐,仅应急使用)

该方法适用于无法使用上述命令的特殊情况,比如忘记root密码时进入安全模式修改。

步骤:

  • 停止MySQL服务
  • 以跳过权限检查方式启动:mysqld --skip-grant-tables
  • 登录MySQL并执行:
UPDATE mysql.user SET authentication_string = PASSWORD('新密码') WHERE User = 'root' AND Host = 'localhost';

MySQL 8.0+ 使用:

UPDATE mysql.user SET authentication_string = CONCAT('*', UPPER(SHA1(UNHEX(SHA1('新密码'))))) WHERE User = 'root' AND Host = 'localhost';

完成后重启MySQL服务。

使用mysqladmin工具(命令行方式)

适用于在操作系统命令行中修改远程或本地用户密码。

mysqladmin -u 用户名 -p password "新密码"

执行后会提示输入原密码,验证通过后设置新密码。

基本上就这些常用方法。日常操作建议使用ALTER USER,安全且兼容性好。修改密码后记得刷新权限,并确保新密码符合安全策略。不同MySQL版本语法略有差异,特别是5.7和8.0之间要注意函数变化。不复杂但容易忽略版本适配问题。