YII2进行MySQL数据库操作时出现Database Exception – yii\db\Exception SQLSTATE[HY000] [2002] No such file or directory

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容