我在使用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,我可以从终端执行命令,但我无法从我的应用程序访问表。
答案 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
个文件