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错误:
二、错误原因
在进行数据库操作时出现如下类似错误,实际错误原因是默认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数据库操作出现类似Database Exception – yii\db\Exception SQLSTATE[HY000] [2002] No such file or director