我花了很多时间试图弄清楚这一点,并最终接近解决方案,正如本文。
特别是这一行:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';
但是,当我在命令行上运行它时,我得到以下结果:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';
ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'
在这篇文章的下面,有人发表了一条评论:
如果该命令ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘test’;
不起作用您可以尝试:
UPDATE mysql.user SET authentication_string = PASSWORD(‘test’), plugin = ‘mysql_native_password’ WHERE User = ‘root’ AND Host = ‘localhost’;
FLUSH PRIVILEGES;
当我尝试这个时我得到以下信息:
mysql>
UPDATE mysql.user SET authentication_string = PASSWORD(‘test’), plugin = ‘mysql_native_password’ WHERE User = ‘root’ AND Host = ‘localhost’;
ERROR 1054 (42S22): Unknown column '‘root’' in 'where clause'
我发现问题在于我的 root 用户没有设置密码。这就是我无法以 root 身份登录的原因,我搜索了所有我在这里找到的与此相关的问题,但没有任何解决方案。
以下是一些对我找到上述资源有帮助的警告。
根用户未设置 authentication_string
https://gyazo.com/fef2073150114ae487f6a0b3b6cf3f96
任何帮助深表感谢。