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

不要忘记检查sai默认使用的新凭据

【讨论】:

以上是关于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

Laravel SQLSTATE[HY000] [2002] 连接被拒绝

Laravel / MySQL 错误:SQLSTATE[HY000]:一般错误:1835 格式错误的通信数据包