首页 > 解决方案 > MySQL上root用户的认证字符串

问题描述

我花了很多时间试图弄清楚这一点,并最终达到了非常接近本文中指出的解决方案:

https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/

特别是这一行:

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’;” doesn’t work you can try :

UPDATE mysql.user SET authentication_string = PASSWORD(‘test’), plugin = ‘mysql_native_password’ WHERE User = ‘root’ AND Host = ‘localhost’;

同花顺特权;


当我尝试这个时,我得到以下信息:

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

任何帮助深表感谢。

谢谢。


基于评论中提出的问题的其他信息:

mysql> 显示创建用户 root@'localhost'; 错误 1396 (HY000): 'root'@'localhost' 的 SHOW CREATE USER 操作失败

我要解决的问题是为 root 添加密码。

现在我必须使用以下 sudo mysql 运行 mysql

我不能做类似 mysql -u root -p 的事情

我得到以下输出:

tkhara@sandbox:~$ mysql -u root -p 输入密码: ERROR 1698 (28000): Access denied for user 'root'@'localhost'

因为似乎没有为 root 用户设置密码。

标签: mysql

解决方案


推荐阅读