【问题标题】:Not Able To Connect to Laravel Homestead MySQL Server through PHP Artisan Command but CAN connect through web browser/app无法通过 PHP Artisan 命令连接到 Laravel Homestead MySQL 服务器,但可以通过 Web 浏览器/应用程序连接
【发布时间】:2018-01-20 12:55:03
【问题描述】:

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

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

现在,如您所见,我正在连接到 localhost,并使用端口 33060。

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

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

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

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

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

http://imgur.com/a/dtXCY

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

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

【问题讨论】:

    标签: php mysql laravel ssh homestead


    【解决方案1】:

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

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

    【讨论】:

    • 救生员我告诉你!哦,我的上帝。谢谢。 :D 虽然我会说我只更改了 database.php 文件中的 'host' 和 'port' 行,然后从 .env 中删除了主机和端口 .... 我没有复制和粘贴整个给出代码 sn-p 是因为它删除了一些变量集,如引擎和严格变量。所以只需替换这两行就可以了。
    猜你喜欢
    • 2014-06-19
    • 1970-01-01
    • 1970-01-01
    • 2017-06-15
    • 1970-01-01
    • 1970-01-01
    • 2010-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多