You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL 8.0用户密码重置失败求助:两种操作均未生效

MySQL 8.0 修改用户yyy密码的解决办法

问题原因

  • 执行ALTER USER报错1396:说明'yyy'@'%'这条用户记录存在异常,可能是之前删除操作留下的脏数据,或者用户属性不匹配。
  • 手动改user表无效:MySQL 8.0的authentication_string字段存的是对应认证插件的加密密码,直接写入普通SHA1哈希值格式不对——比如默认的caching_sha2_password哈希以$A$开头,mysql_native_password是*开头的特殊SHA1串,不是单纯的SHA1计算结果。

正确操作步骤

方案一:删了重建用户(最稳妥)

  1. 先清理异常用户记录:
DROP USER IF EXISTS 'yyy'@'%';
  1. 重新创建用户并设置密码(指定mysql_native_password插件,避免默认插件的兼容性问题):
CREATE USER 'yyy'@'%' IDENTIFIED WITH mysql_native_password BY '12345';
  1. 如需给用户分配权限,按需执行(权限范围可自行调整):
GRANT ALL PRIVILEGES ON *.* TO 'yyy'@'%';
FLUSH PRIVILEGES;

方案二:修复现有用户(不删除用户的情况)

如果不想删除用户,尝试重置用户属性后修改密码:

ALTER USER 'yyy'@'%' IDENTIFIED WITH mysql_native_password BY '12345';

若这条命令仍然报错,优先使用方案一,说明用户记录确实存在异常。

手动修改表无效的原因

MySQL 8.0中直接修改user表的authentication_string字段时,必须写入对应认证插件要求的加密格式:

  • 使用mysql_native_password插件时,密码哈希格式为*加上「密码SHA1结果再进行一次SHA1加密」的值。例如密码12345的正确哈希值是*D4C74594D841139387FC576F08367892A6BBDFAE,而非普通SHA1串,因此无法正常登录。

内容的提问来源于stack exchange,提问作者Xlucidator

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 10:01:19