我有一台运行正常的网络服务器,直到我们今天停电。将服务器重新联机后,托管在其上的网站失败,因为它无法连接到MySQL。
当我尝试通过mysql -u root -p登录mysql时,我得到以下内容:
ERROR 2002(HY000):无法通过套接字'/var/run/mysqld/mysql.sock'连接到本地MySQL服务器(2)
所以我在服务器上搜索了mysql.sock,但根本找不到它。就像它在电源故障期间被删除一样。
如何让mysql备份并运行,我应该在哪里指向my.cnf,因为我找不到sock文件?
答案 0 :(得分:1)
mysql启动时会创建mysql.sock文件,并在mysql关闭时删除。您不应该像建议的那样自己创建一个mysql.sock文件。实际上,在数据目录中自己创建一个可能会在启动mysql时干扰创建一个。
mysql.sock文件是一个unix套接字,用于方便从客户端到服务器的数据传输。在vanilla mysql安装中,服务器用于与本地客户端通信的Unix套接字文件的默认位置是/tmp/mysql.sock
。该位置也可以在my.cnf
中设置,可能如下所示:
[mysqld]
socket=/var/run/mysql/mysql.sock
如果,当您尝试登录时,会收到错误消息,例如ERROR 2002(HY000):无法通过套接字'/tmp/mysql.sock'(2)连接到本地MySQL服务器,这意味着MySQL服务器守护程序(Unix)或服务(Windows)未运行。
您可以通过以下链接了解更多信息:dev.mysql或dev.mysql
这篇文章也可以帮助您Server Fault