当我尝试连接mysql时,我得到以下错误:
无法通过套接字/var/lib/ MySQL / MySQL连接到本地MySQL服务器。袜子”(2)
有解决这个错误的方法吗?背后的原因可能是什么?
当我尝试连接mysql时,我得到以下错误:
无法通过套接字/var/lib/ MySQL / MySQL连接到本地MySQL服务器。袜子”(2)
有解决这个错误的方法吗?背后的原因可能是什么?
当前回答
在我的情况下,我导入了一个新的数据库,在那之后我无法再次连接。最后我意识到这是一个空间问题。
你可以删除最后一个数据库,然后扩展硬盘或者像我做的那样,恢复虚拟机的快照。
以防有人觉得这有用
其他回答
先尝试2、3种解决方案。如果您无法找到/var/lib/mysql/mysql.sock .sock,则仍然弹出错误提示
find /var/ -name mysql.sock
检查/var/中的可用空间
df
如果目录已满,请删除一些无用的文件/目录
rm /var/cache/*
也许你的问题现在可以解决了。
无法通过套接字/var/lib/ MySQL / MySQL .sock连接到本地MySQL服务器 有两种解决方法
使用短链接 在客户端和服务器文件中提到套接字文件链接。
方法1: 要做链接你可以用
ln -s /data/mysql_datadir/mysql。袜子/ var / lib / mysql / mysql。袜子
方法2: 要提到客户端和服务器端的套接字文件,您需要为客户端和服务器文件设置套接字文件路径,如下所示。服务器文件名可以是Server .cnf,客户端文件名可以是client.cnf。在这个文件中,你会发现一个类似[client]或[server]的部分。你必须把更新套接字文件路径为服务器和客户端通信。
client.cnf
(客户端) 套接字= / mydata / db / mysql / mysql.sock
server.cnf
(服务器) 插座= mydata / db / mysql / mysql。袜子
我更喜欢用方法2代替方法1。因为链接是一个依赖文件,如果以某种方式删除它,那么你会遇到麻烦。既然你知道更好的选择链接,你应该使用它。
MySQL服务器没有运行,或者那不是它的套接字文件的位置(检查my.cnf)。
检查你的mysqld服务是否正在运行,如果没有,启动服务。
如果您的问题没有解决,请查找/etc/my.cnf并按以下方式进行修改,在这里您将看到以socket开头的一行。在进行此更新之前对该文件进行备份。
socket=/var/lib/mysql/mysql.sock
改变
socket=/opt/lampp/var/mysql/mysql.sock -u root
编辑/etc/my.cnf即可 在my.cnf中添加以下行
[mysqld]
socket=/var/lib/mysql/mysql.sock
[client]
socket=/var/lib/mysql/mysql.sock
重新启动mysql并重新连接
Mysql -u user -p password database -h host;