2017-08-05 273 views
0

我的MySQL版本是19年7月5日,它检查用户数据时ALTER USER没有努力改变root密码

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

我发现,“根”不”有密码,但我知道它的密码。

现在我试着用

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正常工作以更改“根”密码。

回答

0

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

这个问题,即使密码“成功”设置使用

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

+0

不完全确定你在做什么要做,但你应该检查'user'表中的'plugin'列;默认情况下,'root'不是'mysql_native_password'(它将使用密码)。 – Solarflare