我陷入了 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).
为了解决这个问题,我尝试使用该命令重新创建符号链接。我正在 Linux 服务器上工作。
ln -s /home/../mysql/tmp/mysql.sock /tmp/mysql.sock
执行上述sql语句,没有任何变化,但出现了PDO异常。后来,我错误地删除了(不在“/tmp”)中mysql.sock
的文件。"/home/../mysql/tmp/"
我如何恢复或重新创建文件mysql.sock
。关于 PDO 异常及其解决方法,您有什么想法吗?
答案1
vi /etc/mysql/my.cnf
您将在配置文件中找到以下几行
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
确保 mysqld.sock 位于其应在的位置我不喜欢错误消息中的路径“/tmp/mysql.sock”
既然你在这里,也寻找这条线
bind-address = 127.0.0.1
如果您尝试从远程位置连接,请注释掉此行。
尝试本地连接(从服务器上的终端)
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 包并解压,然后您应该会在某个地方找到它。如果您使用的是 RHL,则相当于 .rpm。
编辑:由于您一直在复制文件,因此文件所有权可能已更改为 root,请检查一下(使用 ls-la /path)。所有者应为 mysql 组 mysql。想不出其他任何东西了。
答案2
CHECK
在CREATE TABLE
MariaDB 中试验约束后我出现了这个错误。
我的一个实验导致 MariaDB 退出并告诉我无法重新连接到服务器。退出并重新启动后,我收到了该Error 2002
消息。以 root 身份发出systemctl stop mysql
命令,然后使用mysqld
手动启动/usr/sbin/mysqld --skip-grant-tables --skip-networking
。
重新启动客户端后,它连接到了服务器。我使用 SQL 命令删除了发生错误时我正在处理的数据库DROP DATABASE
。我退出客户端,杀死它mysqld
,然后使用 重新启动它systemctl start mysql
。当我重新启动客户端时,一切正常。
我从 SQL 转储重新创建了数据库并重新开始工作。
幸运的是,我正在研究一个用于学习数据库管理的小型数据库,即使无法恢复它也没关系。
答案3
必须更改配置文件httpd.conf
根值
之前,Listen : 0.0.0.0:80.
我将其更改为Listen: 0.0.0.0:8080
- 将根更改为其更高的四位数字(1024、8008、9999 等),然后重新启动apache server
。mysql
嗯,成功了。
我的问题是:mysql.sock
文件是一个套接字文件,它将在 MySql 服务器重新启动时自动创建
最后,我的问题解决了。