YII2,MYSQL数据库Database Exception – yii\db\Exception SQLSTATE[HY000] [2002] No such file or director错误

一、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 director错误

二、错误原因

在进行数据库操作时出现如下类似错误,实际错误原因是默认PHP配置文件php.ini中未指定mysql.sock(或mysqld.sock)文件路径导致的PDO组件无法链接数据库。
我的开发环境:
系统:Linux
集成环境:XAMPP
PHP:单独安装的PHP7.3

三、解决方法

(1)使用php --ini查看php.ini文件路径

Loaded Configuration File:         /etc/php/7.3/cli/php.ini

(2)用find命令查找mysql.sock文件

[email protected]:~# find / -name mysql.sock
/opt/lampp/var/mysql/mysql.sock

(3)打开php.ini文件

修改以下几个配置:(默认的php.ini文件会把以下三项默认留空,因此你需要改成你自己的mysql.sock文件路径)
在php.ini文件里搜索default_socket ,搜索结果如果在以下配置里,就修改

mysql.default_socket =  /opt/lampp/var/mysql/mysql.sock
pdo_mysql.default_socket=  /opt/lampp/var/mysql/mysql.sock
mysqli.default_socket = /opt/lampp/var/mysql/mysql.sock

由于我的php.ini文件,只有以下两个配置,所以我只修改了以下两个配置:

pdo_mysql.default_socket=/opt/lampp/var/mysql/mysql.sock
mysqli.default_socket =/opt/lampp/var/mysql/mysql.sock

然后保存,php.ini文件。

(4)Ctrl+C, 重新在你项目的根目录下运行命令:

php -S localhost:911

就可以看到:

YII2,MYSQL数据库Database Exception – yii\db\Exception SQLSTATE[HY000] [2002] No such file or director错误

参考文章:YII2数据库操作出现类似Database Exception – yii\db\Exception SQLSTATE[HY000] [2002] No such file or director