ALTER USER 无法更改 root 密码

ALTER USER not working to change root password

我的MySQL版本是5.7.19,查看用户数据时

SELECT User, Host, HEX(authentication_string) FROM mysql.user;

我发现 "root" 没有密码,但我知道它有密码。

现在我尝试使用

为其分配密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'this is my password xxxxxxx';

原来这个命令不起作用。但是这个命令有效

UPDATE mysql.user SET authentication_string = PASSWORD('this is my password xxxxxxx') WHERE User = 'root' AND Host = 'localhost';

现在我尝试使用

再次更改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'this is my password xxxxxxx';

但它没有更改我的密码,而是导致我的密码 (HEX) 再次为空。

我的 MySQL 有问题吗?

我尝试创建新用户,使用 ALTER USER 分配密码,成功了!

为什么这个 ALTER USER 在 "root" 上不起作用?

使用不同的 VPS、ALTER USER 可以很好地更改 "root" 密码。

回答我自己的问题,似乎有一个错误。出现这个问题是因为我在安装MySQL时设置密码时使用了复制粘贴。卸载重装后,现在手动输入密码,问题没有了。

有关此问题的其他信息,即使密码 "successfully" 使用

设置

UPDATE mysql.user SET authentication_string = PASSWORD('this is my password xxxxxxx') WHERE User = 'root' AND Host = 'localhost';

我可以看到那里有一个密码

SELECT User, Host, HEX(authentication_string) FROM mysql.user;

我仍然可以使用 mysql -u root

免密码登录