mysql里面出现SQLSTATE[HY000] [2002] No such file or directory 这类异常说明链接套接字文件xxx.sock 没有找到

异常信息:

 Illuminate\Database\QueryException 

  SQLSTATE[HY000] [2002] No such file or directory (Connection: mysql, SQL: select `*` from `user`)

  at vendor/laravel/framework/src/Illuminate/Database/Connection.php:829
    825▕                     $this->getName(), $query, $this->prepareBindings($bindings), $e
    826▕                 );
    827▕             }
    828▕ 
  ➜ 829▕             throw new QueryException(
    830▕                 $this->getName(), $query, $this->prepareBindings($bindings), $e
    831▕             );
    832▕         }
    833▕     }

解决方法:

1. 先使用mysql_config命令查看当前mysql的sock文件的位置

mysql_config --socket 

2.使用php --ini命令查看php.ini配置文件的路径信息

php --ini

3. 打开php.ini文件,搜索pdo_mysql.default_socket 然后将这个的值替换为上面获取到的sock文件路径

如下图:

保存php.ini文件,至此,这个问题应该就解决了。

临时解决方案:在命令中指定环境变量

在执行 Artisan 命令时,临时覆盖环境变量:

DB_SOCKET= DB_HOST=127.0.0.1 php artisan migrate

更多推荐