Mysql外部连接,但本地sock错误

Mysql外部连接,但本地sock错误,mysql,Mysql,我可以从外部连接到我的MySQL服务器(因此我知道服务器已经启动并运行),但是当我尝试在本地连接时,我得到了好的结果 Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 因此,与其他情况不同,我的服务器正在运行-只是我无法在本地连接?似乎您没有维护mysql.sock,这是本地连接的必备工具。您应该首先检查mysql.sock文件是否存在于您提到的位置,即/var/lib/mys

我可以从外部连接到我的MySQL服务器(因此我知道服务器已经启动并运行),但是当我尝试在本地连接时,我得到了好的结果

 Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

因此,与其他情况不同,我的服务器正在运行-只是我无法在本地连接?

似乎您没有维护mysql.sock,这是本地连接的必备工具。您应该首先检查mysql.sock文件是否存在于您提到的位置,即/var/lib/mysql/mysql.sock。如果没有,请在my.conf文件中添加以下内容并重新启动mysql服务器

[mysqld]
socket=/var/lib/mysql/mysql.sock

[client]
socket=/var/lib/mysql/mysql.sock

您可能缺少
mysql客户端

您的服务器可能运行正常,但您仍然需要客户端才能在本地运行

要在Unix/Linux上解决此问题,请使用您最喜欢的/默认依赖项管理服务安装
mysql客户端
。Windows安装通常是自动完成的,就像MySQL网站上的Mac安装一样

例子 Debian/Ubuntu:

sudo apt-get install mysql-client
红帽:

sudo yum install mysql-client

提到的文件实际上存在吗?也可以看到:没有,但我可以连接外部。外部连接不使用sock文件吗?不,它使用TCP/IP套接字-这是一个Unix套接字。我认为,解决方法是连接到
127.0.0.1
在Unix上,MySQL程序特别对待主机名localhost,与其他基于网络的程序相比,其处理方式可能不同于您所期望的。对于到本地主机的连接,MySQL程序尝试使用Unix套接字文件连接到本地服务器。
如果该文件不存在,则向其添加路径将无济于事。您可以将路径正确设置为实际位置,也可以将其从实际位置符号链接到
/var/lib/mysql/mysql.sock
,使用
ln-s
抱歉,Philip我没有正确理解您。符号链接如何帮助不存在的文件?我还需要重新启动服务器吗?您需要找到mysql.sock文件,或者添加与发布内容类似但路径正确的行,或者创建一个从正确路径到/var/lib/mysql/mysql.sock的符号链接。服务器和客户端都需要使用相同的文件。该文件基本上充当传输信息的管道-