我的本地环境是:
- 新鲜的 Ubuntu 16.04
- 使用 PHP 7
- 已安装 MySQL 5.7
sudo apt-get install mysql-common mysql-server
当我尝试登录 MySQL 时(通过 CLI):
mysql -u root -p
我遇到了 3 个步骤的循环问题。
1)首先是一些套接字问题
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
解决方法:重启电脑。
这导致了另一个错误:
2) 访问被拒绝
ERROR 1698 (28000): Access denied for user 'root'@'localhost'.
可能的问题? “root”用户密码错误!
解决方案: 使用本教程重置 root 密码。
使用正确的密码和工作套接字,会出现最后一个错误。
3)不正确的身份验证插件
mysql "ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded"
在这里,我停下来或以某种方式再次到达 1)。
原文由 Tomas Votruba 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个解决方案!
在步骤 2) 重置 root 密码时,还将 auth 插件更改为
mysql_native_password
:这让我可以成功登录!
完整的代码解决方案
1. 首先,运行这些 bash 命令
2.然后运行mysql命令=>手动复制粘贴到CLI
3.运行更多的bash命令
4. 套接字问题(来自您的评论)
当您看到 套接字 错误时,社区提供了 2 种可能的解决方案:
(感谢@Cerin)
或者
(感谢@Peter Dvukhrechensky)
盲路和可能的边缘错误
使用 127.0.0.1 而不是 localhost
可能导致“丢失文件”或 slt 错误。
效果更好。
跳过套接字问题
我找到了许多创建
mysqld.sock
文件、更改访问权限或对其进行符号链接的方法。毕竟这不是问题。跳过
my.cnf
文件问题也不存在。如果您不确定, 这可能会对您有所帮助。