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

时间:2014-12-15 23:53:29

标签: mysql linux centos

在CentOS 7机器上,当我尝试从终端登录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那么我在哪里可以找到mysql.sock以及如何解决此错误?

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

1。)当我看到systemctl status mysqld显示mysql被停止时,我也尝试了systemctl start mysqld但是终端只是给了一个没有响应的光标而没有新的提示,好像它被等待等待什么东西,但它无限期地保持在那个边缘状态。

2。)所以我打开另一个终端窗口并运行systemctl status mysqld,只是为了看到mysqld再次启动。但错误仍然存​​在。

3。)我尝试find / -name "mysql.sock",但回复是find: ‘/run/username/1000/gvfs’: Permission denied

4.)然后我看了this posting并尝试了mysqladmin | grep d.sock,但没有结果。

5.。)我甚至使用yum remove mysql后跟yum install mysql,但是mysql -u root仍然在此帖子的顶部提供相同的原始错误。

6。)然后我看了this other posting,但是mysqladmin variables给出了无法连接的相同错误,因为无法找到mysql.sock

7。)我尝试了ln -s /tmp/mysql.sock /var/mysql/mysql.sock,但是当我尝试cd /var/lib/mysql/ls -al

时,即使看到mysql的链接,也会出现同样的错误

8。)由于问题可能与systemctl start mysqld被挂起的事实有关,我看了this posting并尝试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。)然后我读了this posting,这导致我运行mysql --help | grep "Default options" -A 1。结果打印了mysql查找my.cnf的位置。因此我检查了每个位置,并且没有找到my.cnf个文件。但我确实找到了mysql.cnf.rpmsave,所以我尝试了mv mysql.cnf mysql.cnf.rmpsave。这导致预期目录中存在my.cnf,但systemctl status mysqld表示找不到mysqld。我再次尝试yum install mysql,但它告诉我已经安装了mysql所以我怀疑新重命名的my.cnf已损坏。如果是,我该如何解决? Here is the link到文件共享网站上新重命名的my.cnf的副本。

2 个答案:

答案 0 :(得分:1)

意识到这是一篇很老的帖子,但现在我自己也发现了这一点,发现很难找到合适的解决方案。我通过以下方式解决了这个问题:

  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联系。使用MySQL通过127.0.0.1localhost连接使用不同的方法(前者为TCP,后者为Sock)

  3. 确保您的防火墙内部没有阻止端口,或者考虑暂时禁用暂时以确保不是这种情况。

答案 1 :(得分:0)

以下是关于如何解决此问题的Detailed example。如果您密切关注所有这些步骤,那么您应该在不及时修复它。