mysql - 无法通过套接字连接到本地 MySQL 服务器(不使用 sudo)

标签 mysql ubuntu wsl-2

我正在通过 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/

相关文章:

lamp - WSL2 虚拟主机 IP 地址

mysql - 使用 Serverless Aurora 时 Sequelize 连接超时,寻找增加超时持续时间或重试连接的方法

mysql - Sql 将列序列化为一条记录以供搜索

python-3.x - Matplotlib WSL2 Pycharm

ubuntu - 如何在 Ubuntu 上更新 Chromedriver?

ruby - 将文件中的字符串转换为十六进制 (Ruby) 第二部分

django - 从在 WSL 上运行的 django 连接到在 Windows 上运行的 Postgres

php - 在 PHP 中上传和保存多个图像

sql - Mysql中的异或约束

docker - "aaaaa"存储库不存在或可能需要 'docker login' 的拉取访问被拒绝