工匠迁移码头工程师错误

时间:2018-05-13 23:19:55

标签: docker laravel-5 laradock

我有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

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

2 个答案:

答案 0 :(得分: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。

答案 1 :(得分: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配置文件中。 当然,我不确定这种方式是否正确,但是我知道它至少对我有用两次。

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