0

我有 Laradock 设置并在 larval 中提供网站,但是当我尝试运行 php artisan migrate 时出现此错误。

 SQLSTATE[HY000] [2002] No such file or directory (SQL: select * from  information_schema.tables where table_schema = yt and table_name = migrations)



DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=yt
DB_USERNAME=root
DB_PASSWORD=root

我似乎无法找到解决我的问题的方法。

4

2 回答 2

0

首先你应该检查哪个容器运行 mysql 服务:

sudo docker ps

也许它没有将 mysql 容器的端口暴露给 localhost (127.0.0.1),所以 laravel 无法连接到它。找到 mysql 容器名称,然后更改 DB_HOST 。举个例子:

app-container 172.0.0.1 mysql-container 172.0.0.2

因为当 docker 启动时,它会为自己创建一个虚拟网络,然后它会暴露给你的计算机。所以如果你想让 laravel 可以使用 msql,你应该在这个例子中将 DB_HOST 更改为 172.0.0.2。

于 2018-05-14T07:25:46.010 回答
0

我在 MacOS 上与 Laradock 有同样的问题,无法连接到 MariaDB 容器。

我的方式:

  1. 获取 MariaDB 容器的正确名称:

docker ps

  1. 检查容器(例如容器名称为:container_mariadb_1

docker inspect container_mariadb_1

  1. 在长长的参数列表的最底部,您可以看到 IPAddress

"IPAddress": "172.26.0.3"

我将此 IP 作为DB_HOST放在 Laravel 的 .env 配置文件中,就是这样。当然我不确定这种方式是否真的正确,但我知道它至少对我有用两次。

更新:在我的情况下,如果我DB_HOST=mariadb在 .env 文件中使用,Laravel 也会正常连接到 MariaDB。

于 2019-09-22T18:12:24.537 回答