YII2進(jìn)行MySQL操作時(shí)出現(xiàn)Database Exception – yii\db\Exception SQLSTATE[HY000] [2002] No such file or directory錯(cuò)誤的解決方法
在進(jìn)行數(shù)據(jù)庫(kù)操作時(shí)出現(xiàn)如下類(lèi)似錯(cuò)誤忆蚀,實(shí)際則是PHP配置文件php.ini中未指定mysql.sock(或mysqld.sock)文件路徑導(dǎo)致的PDO無(wú)法鏈接數(shù)據(jù)庫(kù)
解決方法是在php.ini文件中自己手動(dòng)指向mysql.sock路徑
如果沒(méi)有php.ini文件各薇,請(qǐng)先行安裝php-common擴(kuò)展
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
以上三個(gè)mysql的值默認(rèn)是空,將其修改為mysql.sock的路徑即可
部分人的mysql.sock值并不一定在/tmp下面些阅,可以進(jìn)入mysql后進(jìn)行查找
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胃夏,有時(shí)候phpinfo信息會(huì)出現(xiàn)一定的bug