php - 无法通过 PHP Artisan 命令连接到 Laravel Homestead MySQL 服务器,但可以通过 Web 浏览器/应用程序连接

标签 php mysql laravel ssh homestead

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

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

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

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

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

我已经在我的机器上安装了最新版本的 MySQL,但是我已经在系统首选项下将其关闭以避免冲突...

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

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

http://imgur.com/a/dtXCY

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

如果需要其他信息,请告诉我,我将编辑问题!

最佳答案

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

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

关于php - 无法通过 PHP Artisan 命令连接到 Laravel Homestead MySQL 服务器,但可以通过 Web 浏览器/应用程序连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45644803/

相关文章:

php - 如何在单击 'Read More' 按钮时显示数据库的全部内容

php - Symfony 3 路由 : No route found for "GET/user/add"

php - AngularJS 与 Laravel 模型分页 - 分页栏未正确显示

php - Laravel 正则表达式与 JPG 匹配 Url 不起作用

php - 使用 PDO 对 null 调用成员函数 query()

php - PHP-MySQL 分页中的序列号

php - 如何查找数组或 mySQL 表中丢失的数据?

php - wordpress Wp_query 和日期字段的元查询问题

php - Laravel - 你如何将变量注入(inject)密码提醒邮件

php - 在 laravel 5.5 中创建自定义外部类