无法通过 Laravel Homestead MySQL 服务器连接 PHP Artisan 命令但可以通过网络连接 browser/app

Not Able To Connect to Laravel Homestead MySQL Server through PHP Artisan Command but CAN connect through web browser/app

我遇到了一个很奇怪的问题。首先让我们从我的 .env 文件开始

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=33060
DB_DATABASE=blog
DB_USERNAME=homestead
DB_PASSWORD=secret

现在,如您所见,我正在连接到本地主机,并使用端口 33060。

如果我通过我的 'blog.app' 域连接到我的 Web 应用程序,我可以很好地连接,并且可以很好地从数据库中提取信息。 Homestead 已正确设置和配置,域正在 /etc/hosts 文件中转发。

现在每当我 运行 我的主机上的 php artisan 命令而不是在 vagrant 框内时,我都会遇到一些连接问题...

我已经在我的机器上安装了最新版本的 MySQL 但是我已经在我的系统偏好设置下将其关闭以避免冲突...

为了测试迁移以查看其是否成功,我现在只是 运行ning migrate:refresh。

这是一些错误的屏幕截图,以及我如何设置 .env 文件和 database.php 文件设置。

http://imgur.com/a/dtXCY

不知道问题出在我的主机上还是在 vagrant box 内。我应该总是通过 SSH 进入 vagrant box 来执行 运行ning php artisan 命令吗?我可以在主机上 运行 php artisan 吗?我觉得你可以。

如果需要更多信息,请告诉我,我会编辑问题!

这是预期的行为,因为从主机访问 MySQL 与从 VM 访问时端口不同。

有一种方法可以设置端口映射,因此它们会根据请求的来源而改变,如本文所述 https://medium.com/@morrislaptop/connect-to-laravel-homestead-mysql-from-inside-and-outside-the-host-machine-a117b3ba75f2