[MYSQL] 修改密码时, 用户存在, 但报错 ERROR 1396 (HY000): Operation ALTER USER failed

背景

mysql 5.7.44
搭建主从的时候, 主库导出数据, 从库导入, 执行change master后, start slave 发现报错
[MYSQL] 修改密码时, 用户存在, 但报错 ERROR 1396 (HY000): Operation ALTER USER failed-每日运维

分析

报错是执行alter语句有问题.
人工跑这个语句也是相同的报错, 说明不是主从的问题. 就是执行这个SQL的问题. 但是这个SQL语句本身是没得问题.(主库都执行成功了的). 查看mysql.user表也存在这个用户. 当前是root@localhost, 所以权限也是有的. 当前数据库是5.7.44, 最新版

玄学问题??

其实这是操作不当造成的, 也就是使用 update/insert 等DML 修改用户信息导致的. 有类似BUG: https://bugs.mysql.com/bug.php?id=97693

解决

使用 FLUSH PRIVILEGES; 刷新权限即可.
这个问题其实不太容易遇到, 因为我们搭建主从的时候, 基本上不存在修改密码问题.