mysql.sock找不到,我在哪里可以find它?

在CentOS 7机器上,当我尝试从terminallogin到mysql时,出现以下错误:

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

然后我试着cd /var/lib/mysqlls -al ,但是结果列表中的文件不包含mysql.sock那么我在哪里可以findmysql.sock ,我该如何解决这个错误?

以下是我已经尝试过的一些事情:

1)当我看到systemctl status mysqld显示mysql已经停止时,我也尝试了systemctl start mysqld但是terminal只是给了一个没有响应的游标而没有新的提示,就好像它被阻止在等待什么东西,无限状态。

2.)所以我打开另一个terminal窗口,并运行systemctl status mysqld ,只看到mysqld再次启动。 但是错误依然存在。

3.)我试图find / -name "mysql.sock"但回应是find: '/run/username/1000/gvfs': Permission denied

4.)然后我读这个post,并尝试mysqladmin | grep d.sock mysqladmin | grep d.sock但没有结果。

5.)我甚至采取了yum remove mysql然后yum install mysql ,但是然后mysql -u root仍然在本文顶部给出了相同的原始错误。

6.)然后我读这篇文章 ,但mysqladmin variables给出了相同的错误,它无法连接,因为无法findmysql.sock

7.)我尝试了ln -s /tmp/mysql.sock /var/mysql/mysql.sock但是当我尝试cd /var/lib/mysql/ls -al时,即使连接到mysql变得可见,同样的错误仍然存​​在ls -al

8.)由于这个问题可能与systemctl start mysqld被挂起的事实有关,所以我阅读这篇文章,并尝试使用chown -R mysql:mysql /var/lib/mysqlsystemctl start mysqld但结果是Failed to issue method call: Unit mysqld.service failed to load: No such file or directory.

9.)然后我读这个post ,这导致我运行mysql --help | grep "Default options" -A 1 mysql --help | grep "Default options" -A 1 。 结果显示了mysql查找my.cnf的位置。 因此,我检查了每个位置,没有findmy.cnf文件。 但是我find了一个mysql.cnf.rpmsave ,所以我试了mv mysql.cnf mysql.cnf.rmpsave 。 这导致在预期的目录中有一个my.cnf ,但systemctl status mysqld表示找不到mysqld 。 我再次尝试yum install mysql ,但它告诉我, mysql已经安装。 所以我怀疑新更名为my.cnf已损坏。 如果是的话,我该如何解决? 这里是链接到文件共享网站上新重命名的my.cnf的副本。

意识到这是一个旧的帖子,但是刚刚碰到这个,发现很难找到合适的解决方案。 我通过以下方法解决了这个问题:

  1. 安装zlib

     32-Bit Debian/Ubuntu: apt-get install zlib1g 64-Bit Debian/Ubuntu: apt-get install lib32z1 32/64-Bit Fedora: yum install zlib.i686 32/64-Bit Mandriva: urpmi zlib1 32-Bit SUSE: zypper install libz1 64-Bit SUSE: zypper install libz1-32bit 
  2. 连接到127.0.0.1而不是localhost如果该选项可用。 通过127.0.0.1localhost通过MySQL连接使用不同的方法(TCP为前者,后者为Sock)

  3. 确保你的防火墙在内部不阻塞端口,或许考虑暂时禁用它,以确保不是这种情况。

以下是有关如何解决此问题的详细示例 。 如果你密切关注所有这些步骤,那么你应该立即修复它。