出现这个问题的原因是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”,没试过。