当我尝试连接mysql时,我得到以下错误:

无法通过套接字/var/lib/ MySQL / MySQL连接到本地MySQL服务器。袜子”(2)

有解决这个错误的方法吗?背后的原因可能是什么?


当前回答

确保在/var中有足够的空间。如果Mysql恶魔不能写入额外的信息到驱动器,Mysql服务器将不会启动,这将导致错误无法连接到本地Mysql服务器通过套接字'/var/lib/ Mysql / Mysql。袜子”(2)

考虑使用

expire_logs_days = 10
max_binlog_size = 100M

这将帮助您降低磁盘使用率。

其他回答

遇到同样的问题——下面是我的解决方法。

假设mysqld正在运行,那么问题可能只是mysql客户端不知道在哪里寻找套接字文件。

解决这个问题最直接的方法是在用户的配置文件.my.cnf文件中添加以下一行(在linux上通常在/home/myusername下):

socket=<path to the mysql socket file>

如果你没有.my.cnf文件,那么创建一个包含以下内容的文件:

[mysql]
socket=<path to the mysql socket file>

在我的例子中,由于我将mysql默认数据文件夹(/var/lib/mysql)移动到不同的位置(/data/mysql),我添加到.my.cnf如下:

[mysql]
socket=/data/mysql/mysql.sock

希望这能有所帮助。

如果你的mysql之前是工作的,突然停止了,就“重启”服务器。

在我的CentOS vps上遇到了这个问题->

不断得到

无法通过套接字/var/lib/ MySQL / MySQL .sock连接到本地MySQL服务器(2)

尝试了所有的技术,最终重新启动服务器修复了问题->

立即关闭-r

希望这能有所帮助!!

无法通过套接字/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。因为链接是一个依赖文件,如果以某种方式删除它,那么你会遇到麻烦。既然你知道更好的选择链接,你应该使用它。

我不得不从my.cnf禁用explicit_defaults_for_timestamp。

确保你启动了服务器:

mysql.server start

然后用root用户连接:

mysql -uroot