php-pdo

PDO连接数据库报错:“SQLSTATE[HY000] [2002] No such file or directory”

出现这个问题的原因是PDO无法找到mysql.sock或者mysqld.sock。

解决方法:
找到相应的.sock文件.
mysql> show variables like ‘%sock%’;
+—————————————–+—————————+
| Variable_name | Value |
+—————————————–+—————————+
| performance_schema_max_socket_classes | 10 |
| performance_schema_max_socket_instances | -1 |
| socket | /var/lib/mysql/mysql.sock |
+—————————————–+—————————+
3 rows in set (0.00 sec)

并设置php.ini文件中的pdo_mysql.default_socket的值为.sock文件的路径。
pdo_mysql.default_socket = /var/lib/mysql/mysql.sock

另外一种解决方法,将PDO连接中的dsn的host由“localhost”改为“127.0.0.1”,没试过。