Laravel 8 - SQLSTATE[HY000] [2002] 没有这样的文件或目录
Posted
技术标签:
【中文标题】Laravel 8 - SQLSTATE[HY000] [2002] 没有这样的文件或目录【英文标题】:Laravel 8 - SQLSTATE[HY000] [2002] No such file or directory 【发布时间】:2021-12-03 03:44:13 【问题描述】:我正在尝试使用 Laravel 和 Sail 创建一个项目,但是当我尝试迁移或执行与项目数据库相关的任何操作(例如,播种)时出现错误。
更具体地说,当使用 artisan sail migrate
或任何相关内容时,我收到以下错误:
当DB_HOST=localhost
在我的.env
文件中时:
SQLSTATE[HY000] [2002] No such file or directory (SQL: select * from information_schema.tables where table_schema = noway and table_name = migrations and table_type = 'BASE TABLE')
当DB_HOST=127.0.0.1
在我的.env
文件中时:
SQLSTATE[HY000] [2002] Connection refused (SQL: select * from information_schema.tables where table_schema = noway and table_name = migrations and table_type = 'BASE TABLE')
我尝试过的:
将DB_HOST
更改为 localhost 和 127.0.0.1(网上最常见的答案,没有成功)
确保 SQL 正在运行
正在清除sail artisan migrate
的缓存
./vendor/bin/sail down --rmi all -v
删除所有图像和卷
更改用户名和密码并将它们放在 '' 或 "" 之间
以上都没有成功。
【问题讨论】:
【参考方案1】:您在创建和设置 .env 后是否运行了 ./vendor/bin/sail ?如果不是,请执行 ./vendor/bin/sail down --rmi all -v 删除所有图像和卷,然后运行 ./vendor/bin/sail up 重新创建图像和卷。
另外,根据 laravel 文档 https://laravel.com/docs/8.x/sail,您可以通过将 env DB_HOST 设置为 mysql 来连接到 db
【讨论】:
【参考方案2】:T 在几乎相同的条件下遇到了同样的问题: -我从一个 laravel 项目开始,然后将其移至航行
我解决这个问题的方法是在 .env 文件中添加一个条目 DB_PORT=3306
并将 DB_HOST=localhost
更改为 DB_HOST=mysql
,如 laravel 文档中所述:https://laravel.com/docs/8.x/sail#mysql
【讨论】:
以上是关于Laravel 8 - SQLSTATE[HY000] [2002] 没有这样的文件或目录的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 8 - SQLSTATE[HY000] [2002] 没有这样的文件或目录
SQLSTATE[HY000]:一般错误:1005 无法创建表 Laravel 8
SQLSTATE[HY000]:一般错误:1215 无法添加外键约束 Laravel 5.8
Laravel 5.8 错误 SQLSTATE[HY000]: 一般错误: 1005 uuid