用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
修改完之后记得重启服务!