Laravel Homestead数据库连接出现异常

3
我在使用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个回答

1

您的应用程序正在运行提供在Homestead.yaml中提供的IP上,因此当本地主机相对于您的应用程序端口3306工作时。当不使用SSH进入您的vagrant vm时运行artisan命令,您正在相对于计算机的本地主机而不是vm运行命令,因此您正在尝试针对没有数据库的机器运行迁移。

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

DB_HOST设置为127.0.0.1,端口为3306,并通过vagrant ssh命令登录到您的vagrant vm以运行迁移命令。

或者,您可以为各种环境拥有多个.env文件。


谢谢您的回答和详细解释。一旦我通过ssh进入我的vagrant,我应该如何运行php artisan migrate? - Diego Vidal
@DiegoVidal 导航到 artisan 所在的目录并像平常一样运行命令。 - Tyler Benzing

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接