Laravel 8 - SQLSTATE[HY000] [2002] 没有找到该文件或目录

4

我正在使用Laravel和Sail制作一个项目,但是当我尝试迁移或执行与项目数据库相关的任何操作(例如填充)时,我遇到了错误。

更具体地说,当我使用artisan sail migrate或任何相关内容时,我会遇到以下错误:

当我的.env文件中为DB_HOST=localhost时:

SQLSTATE[HY000] [2002]找不到文件或目录(SQL:select * from information_schema.tables where table_schema = noway and table_name = migrations and table_type ='BASE TABLE')

当我的.env文件中为DB_HOST=127.0.0.1时:

SQLSTATE[HY000] [2002]连接被拒绝(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以删除所有映像和卷
  • 更改用户名和密码,并将它们放在''或""之间

以上方法均未成功。

2个回答

4
你创建并设置好.env文件后,是否运行了./vendor/bin/sail up命令?
如果没有,请执行./vendor/bin/sail down --rmi all -v命令以删除所有镜像和卷,然后再运行./vendor/bin/sail up命令重新创建镜像和卷。
另外根据Laravel文档https://laravel.com/docs/8.x/sail,你可以通过将环境变量DB_HOST设置为mysql来连接数据库。

0

我也遇到了几乎相同的问题:

我从一个 Laravel 项目开始,然后将其移植到 Sail 上。

我的解决方法是在 .env 文件中添加条目 DB_PORT=3306,并将 DB_HOST=localhost 改为 DB_HOST=mysql,如 Laravel 文档所述:https://laravel.com/docs/8.x/sail#mysql

  • 不要忘记检查 Sail 默认使用的新凭据。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接