YII2进行MySQL操作时出现Database Exception – yii\db\Exception SQLSTATE[HY000] [2002] No such file or directory错误的解决方法
在进行数据库操作时出现如下类似错误,实际则是PHP配置文件php.ini中未指定mysql.sock(或mysqld.sock)文件路径导致的PDO无法链接数据库
解决方法是在php.ini文件中自己手动指向mysql.sock路径
如果没有php.ini文件,请先行安装php-common扩展
find / -iname php.ini 找到php.ini文件
vim php.ini
mysql.default_socket = /tmp/mysql.sock
pdo_mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock
以上三个mysql的值默认是空,将其修改为mysql.sock的路径即可
部分人的mysql.sock值并不一定在/tmp下面,可以进入mysql后进行查找
MariaDB [(none)]> show variables like '%sock%';
+---------------+------------------------+
| Variable_name | Value |
+---------------+------------------------+
| socket | /work/mysql/mysql.sock |
+---------------+------------------------+
1 row in set (0.00 sec)
如上例中,mysql.sock路径就并不是/tmp目录下。不能查看phpinfo,有时候phpinfo信息会出现一定的bug