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 --provision
在config/database.php
中设置数据库配置
很多人告诉其他人链接mysql套接字,但那些人是在引用MAMP或XAMPP或某事。别的。但是我正在使用 Homestead
还有什么问题?
【问题讨论】:
你试过这个解决方案了吗? ***.com/questions/20723803/… 我的APP_ENV
是local
所以我做了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]:语法错误或访问冲突