mysql - 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 身份登录的原因,我已经梳理了这里讨论的所有线程,但没有任何解决方案。
以下是一些有助于我找到上述资源的警告。
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 用户设置密码。
解决方案
推荐阅读
- html - 使用 padding-bottom 设置图像高度
- javascript - 使用 .find() 的 Mongoose 静态函数返回查询并且静态函数无法识别
- php - 在 Laravel 中按数据透视表 created_at 排序
- javascript - 如何解释 SyntaxError: Unexpected token (?:?), raiseAt:?
- sql-server - 用于游标循环更新触发数据的 TSQL 替代方案
- android - 更新后expo react-native获取本地文件不起作用
- javascript - 使用函数 onclick innerhtml
- c++ - 同步、线程安全接口的正确锁定模型
- android - 使用 WorkManager 下载文件
- reactjs - 是否可以通过 React 中使用的 className 过滤子项?