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

GIR*_*IRI 5 mysql linux sql pdo

我被 PDO 异常困住了

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).
Run Code Online (Sandbox Code Playgroud)

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

 ln -s /home/../mysql/tmp/mysql.sock /tmp/mysql.sock
Run Code Online (Sandbox Code Playgroud)

执行上述sql语句时,PDO异常没有变化。后来,我错误地删除了mysql.sock文件"/home/../mysql/tmp/"(不在“/tmp”中)。

如何取回或重新创建mysql.sock文件。关于 PDO 异常以及如何解决它的任何想法。

Lou*_*zou 13

vi /etc/mysql/my.cnf
Run Code Online (Sandbox Code Playgroud)

您将在配置文件中找到顶部下面的行

[client]
port            = 3306
socket          = /var/run/mysqld/mysqld.sock
Run Code Online (Sandbox Code Playgroud)

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

既然你在这里也找这条线

bind-address            = 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

如果您尝试从远程位置进行连接,请注释掉这一行。

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

mysql -u root -p
Run Code Online (Sandbox Code Playgroud)

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

chmod a+r /var/run/mysqld/mysqld.sock
Run Code Online (Sandbox Code Playgroud)

以上所有内容都应该可以解决您的连接问题。要获取该文件,您可以全新安装 mysql 服务器。

apt-get purge mysql-server
apt-get install mysql-server
Run Code Online (Sandbox Code Playgroud)

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

编辑:由于您一直在复制文件,因此文件所有权可能已更改为 root,请检查(使用 ls-la /path)。所有者应该是mysql组mysql。想不出别的了。