相关推荐recommended
mysql 报错 ERROR 1396 (HY000): Operation ALTER USER failed for root@localhost 解决方案
作者:mmseoamin日期:2024-04-30

mysql 修改密码 ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘123’; 时,报错 ERROR 1396 (HY000): Operation ALTER USER failed for root@localhost 解决方案:

2024-4-3 段子手168

mysql 报错 ERROR 1396 (HY000): Operation ALTER USER failed for root@localhost 解决方案,在这里插入图片描述,第1张

1、首先连接权限数据库:

mysql> use mysql;

mysql 报错 ERROR 1396 (HY000): Operation ALTER USER failed for root@localhost 解决方案,在这里插入图片描述,第2张

2、查看 user 主机名:

mysql> select user, host from user;

可以看到 root 用户的 host 是 【%】,而非 localhost

mysql 报错 ERROR 1396 (HY000): Operation ALTER USER failed for root@localhost 解决方案,在这里插入图片描述,第3张

3、所以修改密码命令更改为:

mysql> ALTER USER ‘root’@‘%’ IDENTIFIED BY ‘123’;

mysql 报错 ERROR 1396 (HY000): Operation ALTER USER failed for root@localhost 解决方案,在这里插入图片描述,第4张

4、如果上面方法还是不能修改,可以试试如下

1)再次查看 mysql 数据库中 user 表的 plugin 字段:

mysql> select user, host, plugin from user;

2)如果发现 root 用户是 caching_sha2_password 的插件

而不是 mysql_native_password 插件,可以把它改成 mysql_native_password 插件。

mysql> update user set plugin=‘mysql_native_password’ where user=‘root’;

mysql 报错 ERROR 1396 (HY000): Operation ALTER USER failed for root@localhost 解决方案,在这里插入图片描述,第5张

5、你也可以把 root 用户的 host 更改成 localhost

mysql> update user set host=‘localhost’ where host=‘%’ and user=‘root’;

mysql 报错 ERROR 1396 (HY000): Operation ALTER USER failed for root@localhost 解决方案,在这里插入图片描述,第6张

6、然后退出 mysql 重新登录(关闭 PowerShell, 重新打开一个),修改密码:

mysql 报错 ERROR 1396 (HY000): Operation ALTER USER failed for root@localhost 解决方案,在这里插入图片描述,第7张