奇怪的行为Laravel Homestead数据库连接

时间:2016-12-25 12:27:51

标签: php mysql laravel homestead

我在使用Laravel,Homestead和MySQL时遇到了一个奇怪的错误。这是与数据库相关的.env文件的一部分:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=33060
DB_DATABASE=mydatabasename
DB_USERNAME=homestead
DB_PASSWORD=secret

如果我将端口设置为3306,我可以从我的应用程序访问表,但是我无法从终端执行命令,例如php artisan migrate。如果我将端口设置为33060,我可以从终端执行命令,但我无法从我的应用程序访问表。

1 个答案:

答案 0 :(得分:1)

您的应用程序正在Homestead.yaml中提供的IP上运行,因此当localhost与您的应用程序端口相关时,3306可以正常运行。在没有SSH进入你的流浪者vm的情况下运行工匠时,你正在运行相对于你机器的本地主机的命令,而不是vm,所以你试图对没有数据库的机器运行迁移。

端口33060适用于本地计算机的原因是因为Homestead默认将此端口转发到您的流浪虚拟机端口3306.但由于您的.env现在指定端口33060,因此流浪虚拟机现在无法访问3306港口。

通过DB_HOST命令将127.0.0.1设置为vagrant ssh,端口3306和SSH进入您的vagrant vm,以运行您的迁移命令。

或者,您可以为各种环境提供多个.env个文件