如何解决错误1396(HY000):对于'root'@'localhost'的ALTER USER操作失败?

时间:2019-07-09 06:13:03

标签: mysql

我无法使用root登录,我认为root的密码可能已更改。但是我也无法更改root的密码。

Mysql版本是v8.0.16。

我已经使用--init-file在mysqld启动时指定了alter sql

alter user 'root'@'localhost' identified by 'mynewpassword'

但它不起作用。

我使用了--skip-grant-tables --user=mysql,所以我可以添加一个新用户,新用户可以使用。我尝试更改根,但再次失败。

mysql> alter user 'root'@'localhost' identified by 'mynewpassword';
ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'

这是表格用户的内容

mysql> select user,host from user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| admin            | %         |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+

有人知道吗?

2 个答案:

答案 0 :(得分:0)

根据the mysql docsthis one-选中特殊的--init-file选项。 然后尝试FLUSH PRIVILEGES;

另外,请参阅与此相关的post

这应该有帮助。

答案 1 :(得分:0)

最后我无法使用root登录,因此我跳过了删除root的授予操作,然后创建了一个新的root用户。只需将新用户视为旧用户即可。