【问题标题】:Laravel 8 - SQLSTATE[HY000] [2002] No such file or directoryLaravel 8 - SQLSTATE[HY000] [2002] 没有这样的文件或目录
【发布时间】: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 删除所有图像和卷
  • 更改用户名和密码并将它们放在 '' 或 "" 之间

以上都没有成功。

【问题讨论】:

    标签: php mysql laravel web laravel-sail


    【解决方案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默认使用的新凭据

      【讨论】:

        猜你喜欢
        • 2020-12-15
        • 2021-08-12
        • 2020-05-07
        相关资源
        最近更新 更多