PDOException SQLSTATE[HY000] [2002] 尝试迁移时没有这样的文件或目录

Posted

技术标签:

【中文标题】PDOException SQLSTATE[HY000] [2002] 尝试迁移时没有这样的文件或目录【英文标题】:PDOException SQLSTATE[HY000] [2002] No such file or directory when trying to migrate 【发布时间】:2015-10-30 02:26:57 【问题描述】:

这个问题已经被问过很多次了,但是我似乎无法让它工作。

我正在尝试将我刚刚使用 laravel 创建的迁移迁移到我新创建的数据库。但是,每次我输入php artisan migrate 我都会收到上述错误

PDOException SQLSTATE[HY000] [2002] 没有这样的文件或目录

我所做的如下:

创建数据库和数据库用户

CREATE DATABASE openletter CHARACTER SET utf8;
CREATE USER 'openletter'@'%' IDENTIFIED BY 'secret';
GRANT ALL PRIVILEGES ON openletter.* TO 'openletter'@'%';

将这些配置添加到 .env

DB_HOST=localhost
DB_DATABASE=openletter
DB_USERNAME=openletter
DB_PASSWORD=secret

创建迁移

php artisan make:migration create_letters_table --create=letters

迁移迁移

php artisan migrate

然后,上面列出的错误来了。

我尝试了什么

重启 mysql 服务:vagrant ssh && sudo service mysqld restart 重新加载宅基地/流浪者:vagrant reload --provisionconfig/database.php 中设置数据库配置

很多人告诉其他人链接mysql套接字,但那些人是在引用MAMP或XAMPP或某事。别的。但是我正在使用 Homestead

还有什么问题?

【问题讨论】:

你试过这个解决方案了吗? ***.com/questions/20723803/… 我的APP_ENVlocal 所以我做了php artisan migrate --env=local 但同样的错误仍然存​​在 你试过“composer dump-autoload”吗?它通常有助于解决我的项目中找不到的迁移类 【参考方案1】:

好的,我解决了这个问题。我是个白痴,应该感到羞耻。它不起作用的原因是因为我不在我的流浪机器中。

在完成vagrant ssh 导航到我的项目cd work/OpenLetter 并执行php artisan migrate 之后,它当然可以工作。

【讨论】:

当然!诚实的错误。对我来说,准备好环境需要source ~/.zshrc 然后homestead up --provision 然后homestead ssh,当然要确保我们在正确的目录中。

以上是关于PDOException SQLSTATE[HY000] [2002] 尝试迁移时没有这样的文件或目录的主要内容,如果未能解决你的问题,请参考以下文章

致命错误:未捕获的 PDOException:SQLSTATE[42000]:? [复制]

PDOException:SQLSTATE [HY093] [重复]

PDOException (1044) SQLSTATE[HY000] [1044] 用户''@'localhost'拒绝访问数据库'forge'

未捕获的 PDOException:SQLSTATE[42000]:语法错误或访问冲突

SQLSTATE [HY000] [2002] 连接被拒绝 - 原因:PDOException [重复]

PHP PDOException:“SQLSTATE [HY093]:无效参数号”