我有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
我似乎无法找到解决问题的方法。
答案 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容器。
我的方式:
docker ps
docker inspect container_mariadb_1
"IPAddress": "172.26.0.3"
我将此IP作为 DB_HOST 放在了Laravel的.env配置文件中。 当然,我不确定这种方式是否正确,但是我知道它至少对我有用两次。
更新:在我的情况下,如果我在.env文件中使用DB_HOST=mariadb
,Laravel也会正常连接到MariaDB。