我的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”密码。
答案 0 :(得分: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