在Linux下php连接mysql数据库遇到2002错误

用thinkphp连接mysql数据库的时候出现了这样一个错误: SQLSTATE[HY000] [2002] No such file or directory

这是因为在 php.ini 配置文件中未指定mysql.sock(或mysqld.sock)文件路径导致的PDO无法连接数据库

在 php.ini 文件中配置以下三项

mysql.default_socket = /tmp/mysql.sock
pdo_mysql.default_socket= /tmp/mysql.sock
mysqli.default_socket =/tmp/mysql.sock

使用mysqld引擎的数据库应修改为如下设置

mysql.default_socket = /tmp/mysqld.sock
pdo_mysql.default_socket= /tmp/mysqld.sock
mysqli.default_socket =/tmp/mysqld.sock

如果你不知道自己使用的是mysql.sock还是mysqld.sock文件,或者不知道mysql_socket文件的位置,打开phpinfo() 函数信息页面找到如下PHP扩展中MYSQL扩展所在位置,找到里边的MYSQL_SOCKET对应的路径值复制出来即可,或者直接在硬盘搜索中使用命令 find / -name mysql.sock

修改完之后记得重启服务!

原文地址:https://www.cnblogs.com/lyhomepage/p/5864246.html