Mysql外部连接,但本地sock错误
我可以从外部连接到我的MySQL服务器(因此我知道服务器已经启动并运行),但是当我尝试在本地连接时,我得到了好的结果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
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的符号链接。服务器和客户端都需要使用相同的文件。该文件基本上充当传输信息的管道-