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

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

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


当前回答

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

假设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服务正在运行。

如果您的my.cnf文件(通常在etc文件夹中)配置正确

socket=/var/lib/mysql/mysql.sock

可以使用以下命令检查mysql是否正在运行:

mysqladmin -u root -p status

尝试更改mysql文件夹的权限。如果你在当地工作,你可以尝试:

sudo chmod -R 777 /var/lib/mysql/

这为我解决了问题

如果你改变了/var/lib/mysql中的文件[像复制或替换它],你必须将文件的所有者设置为mysql,如果mariadb。服务重启失败

chown -R mysql:mysql /var/lib/mysql/* chmod -R 700 /var/lib/mysql/*

如果磁盘空间快用完,这就是一个问题。 解决方案是从HDD中释放一些空间。

请阅读更多内容了解解释:

如果你在LINUX下运行MySQL,用命令disk free检查硬盘的空闲空间:

 df 

如果你得到这样的东西:

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2              5162828   4902260         0 100% /
udev                    156676        84    156592   1% /dev
/dev/sda3              3107124     70844   2878444   3% /home

这就是问题所在,现在你有解决方案了!

因为mysql。Sock想要创建在mysql文件夹,几乎总是在根文件夹下,不能实现,因为缺乏空间。

如果你周期性地在mysql目录下输入ls命令(在openSUSE 11.1是在/var/lib/mysql),你会得到这样的东西:

hostname:/var/lib/mysql #
.protected  IT     files        ibdata1             mysqld.log  systemtemp
.tmp        NEWS   greekDB      mysql               mysqld.pid  test
ARXEIO      TEMP1  ib_logfile0  mysql.sock          polis
DATING      deisi  ib_logfile1  mysql_upgrade_info  restore

mysql。Sock文件经常出现和消失(你必须尝试用ls分配一个mysql实例。文件夹上的袜子文件)。

这是由于磁盘空间不足造成的。

我希望我能帮助一些人!!!! 谢谢!

MariaDB是MySQL的一个社区开发的分支,在许多发行版中已经成为MySQL的默认实现。

首先你应该开始,

$ sudo systemctl start mariadb

如果失败了,不如试试,

$ sudo systemctl start mysqld

然后启动mysql,

$ mysql -u root -p

到今天为止,在Fedora中,这个包被命名为mariadb 在Ubuntu中叫做mariadb-server。

因此,如果您的系统中还没有安装它,您可能必须安装它。