如何获取mysql.sock文件,从“/ mysql / tmp /”错误地删除

我被困在一个PDOexception

PDOException: SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in lock_may_be_available() (line 167 of home/../includes/lock.inc). 

为了解决这个问题,我尝试使用该命令重新创build符号链接。 我正在linux服务器上工作。

  ln -s /home/../mysql/tmp/mysql.sock /tmp/mysql.sock 

当执行上面的sql语句时,PDOexception没有改变。 后来,我错误地删除了“/ "/home/../mysql/tmp/" /tmp/ "/home/../mysql/tmp/" (而不是“/ tmp”)中的mysql.sock文件。

现在,我该如何取回或重新创buildmysql.sock文件。 而关于PDO例外的anyidea,如何解决。

 vi /etc/mysql/my.cnf 

您会在configuration文件中find最下面的行

 [client] port = 3306 socket = /var/run/mysqld/mysqld.sock 

确保mysqld.sock是它应该是的地方我不喜欢你的错误消息“/tmp/mysql.sock”中的path

既然你在这里寻找这条线

 bind-address = 127.0.0.1 

如果您尝试从远程位置连接注释此行。

尝试本地连接(从服务器上的terminal)

 mysql -u root -p 

如果安全性不是您的问题(即它是您的个人服务器而不是多用户环境),您也可以确保该文件是任何人都可读的

 chmod a+r /var/run/mysqld/mysqld.sock 

以上所有应该解决您的连接问题。 要获得文件,你可以做一个全新的安装mysql服务器。

 apt-get purge mysql-server apt-get install mysql-server 

或者你可以下载mysql-server .deb包解压缩它,你应该在那里find它。 如果您使用RHL,则相当于.rpm。

编辑:由于你一直在复制文件,也许文件的所有权改变为根,检查也(与ls-la /path)。 所有者应该是mysql组mysql。 想不到别的。

必须改变configuration文件的httpd.conf根值

以前,这是Listen : 0.0.0.0:80. 我把它改为Listen: 0.0.0.0:8080 – 将root更改为更高的四位数(1024,8008,9999等),然后重新启动apache servermysql 。 那么,它的工作。

对我的问题: mysql.sock文件是一个套接字文件,它将在MySql服务器重新启动时自动创build

最后,我的问题已解决。