我正在通过 WSL2 版本 5.10.16.3-microsoft-standard-WSL2 运行 Windows 10 Build 1904.1706 和 Ubuntu 20.04。
我正在尝试安装 mysql(我之前在常规 linux 机器上做过很多次),并且我在使用 root 帐户和我创建的用户登录 MySQL 时遇到了一些问题。
当我尝试使用 mysql -u root -p
连接到数据库时或 mysql -u root
,我收到以下错误:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (13)
由于我运行了 ALTER USER
,因此我排除了我从错误的主机连接的可能性。命令将 root 的主机从 'localhost' 更改为 '%'。与我创建的用户帐户连接时出现相同的错误。
但是,如果我在前面加上 mysql -u root -p
,我可以正常连接。与 sudo
.
最后我也试过修改/etc/mysql/mysqld.conf.d/mysqld.cnf
并更改了 bind-address
字段到 0.0.0.0
这并没有改变行为。
在我使用过的所有其他 MySQL 安装中,我从不需要使用 sudo
以有效用户身份登录 mysql,所以我想知道 WSL2 是否在起作用。
编辑:补充一点,当我尝试连接到我的 MySQL 服务器时,我是在 WSL 终端中进行的,而不是像 Powershell 这样的 Windows 终端。
我看到了another StackOverflow thread向 CHMOD 建议 /var/lib/mysql
递归目录,但这也没有什么区别
最佳答案
对于遇到此问题的其他人,您可以通过附加 --protocol=tcp
来连接到 MySQL 而无需使用 sudo。标记到您的 mysql 命令。
前任。 mysql -u root -p --protocol=tcp
关于mysql - 无法通过套接字连接到本地 MySQL 服务器(不使用 sudo),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72462200/