在Laravel中迁移表时,“SQLSTATE [HY000] [2002]没有这样的文件或目录”错误

时间:2015-02-05 02:31:03

标签: php mysql laravel artisan homestead

当我尝试使用“php artisan migrate”命令在Laravel 5中迁移表时,我收到以下错误:

  

'SQLSTATE [HY000] [2002]没有这样的文件或目录。 。 。   /vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:47

我的.env文件包含以下默认设置:

DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

我的database.php文件将mysql列为默认数据库连接,homestead在hometead.yaml文件中列为数据库,而homestead是我访问mysql并使用show databases;命令时列出的表之一

关于我可能做错什么的任何想法?

5 个答案:

答案 0 :(得分:1)

127.0.0.1文件中尝试localhost而不是.env。它对我有用:)

答案 1 :(得分:0)

这似乎是套接字文件的问题。如果这有助于Starting with Zend Tutorial - Zend_DB_Adapter throws Exception: "SQLSTATE[HY000] [2002] No such file or directory"

,请与我们联系

答案 2 :(得分:0)

在database.php文件中添加mysql.sock路径,如下例

'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock',

Eample

'mysql' => [
        'driver' => 'mysql',
        'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock',
        'host' => env('DB_HOST', 'localhost'),
        'port' => env('DB_PORT', '8889'),

PDOException SQLSTATE[HY000] [2002] No such file or directory

答案 3 :(得分:0)

好的,对我来说这可能是一个特例,但是我遇到了这个问题。

我将文件从基于Laragon的服务器移动到另一台计算机上基于Mamp的服务器。我连续几天都遇到此错误,并且仅在运行php artisan migrate时才收到此错误,而在加载页面时却没有。加载页面时,我收到未找到表格,这是可以理解的,因为表格不存在。

一段时间后,我只是运行composer update,然后它修复了错误并为我工作。不知道这是否对任何人都有帮助,但如果有任何帮助,我会回到这篇文章。

答案 4 :(得分:0)

localhost 更改为 DATABASE_HOST 文件中的 .env,将其更改为 127.0.0.1,然后运行 ​​php artisan config:clear,然后运行 ​​{{1}再次}。

或者,如果您的问题没有解决,请在您的 .env 文件中使用这些更改:

php artisan migrate:install

然后在Database.php中添加文件夹位置:

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306

最后,尝试:

'unix_socket' => env('DB_SOCKET', '/Applications/MAMP/tmp/mysql/mysql.sock'),