3

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

'SQLSTATE[HY000] [2002] 没有这样的文件或目录' in . . . /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 在我的 homestead.yaml 文件中列为数据库,而 homestead 是我访问 mysql 并使用show databases;命令时列出的表之一。

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

4

5 回答 5

9

尝试127.0.0.1而不是localhost在您的.env文件中。这个对我有用 :)

于 2016-08-17T16:07:11.650 回答
3

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

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

示例

'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] 没有这样的文件或目录

于 2016-11-12T18:41:37.650 回答
2

在文件中更改localhost为您的,将其更改为,然后运行,然后再次运行。DATABASE_HOST.env127.0.0.1php artisan config:clearphp artisan migrate:install

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

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306

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

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

最后,尝试:

php artisan config:clear
php artisan migrate:install
于 2021-04-25T07:04:58.893 回答
0

这似乎是套接字文件的问题。请让我知道这是否有帮助 从 Zend 教程开始 - Zend_DB_Adapter 抛出异常:“SQLSTATE [HY000] [2002] 没有这样的文件或目录”

于 2015-02-05T05:29:40.940 回答
0

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

我将文件从基于 Laragon 的服务器移动到另一台机器上的基于 mamp 的服务器。我有这个错误好几天了,我只在运行时收到这个错误,php artisan migrate而不是在加载页面时收到这个错误。加载页面时,我收到了未找到的表格,这是可以理解的,因为表格不存在。

很长一段时间后,我只是想跑步composer update,然后它修复了错误并为我工作。不确定这是否对任何人有帮助,但我回到这篇文章以防万一。

于 2019-10-25T12:58:52.283 回答