4

我正在 Laravel 5 中启动一个大型项目。过去我使用 XAMPP 进行所有本地工作。现在我们要去宅基地工作。我设置并运行了 Homestead,并在其中启动了一个 Laravel 5 项目。工作正常。

由于各种原因,我们不想使用 Laravel 迁移,而是使用 MYSQL 工作台与 XAMPP-PHPMyAdmin 组合来处理 mysql 数据库。我的问题是:如何从 Homestead 虚拟机中访问这个 mysql 数据库?

我在 app/Config/database.php 中尝试了各种设置。但没有一个工作。

我在这里四处寻找相关问题,但似乎没有人回答我的问题的基础:甚至可以从宅基地内访问远程数据库(或我的主机上的一个)吗?

我在某处读到,我可以从 SQL 转储创建迁移,以使用包(https://github.com/Xethron/migrations-generator)复制宅基地中的数据库。使用这个作为解决方法,我可以将我的 Laravel 应用程序连接到我在 XAMPP 中设置的数据库,生成迁移,然后连接回 Homestead 数据库,最后运行迁移。我认为这可行,但我更喜欢直接连接。欢迎任何关于如何连接到 Homestead VM 之外的数据库的建议。

4

2 回答 2

3

<1>打开 .env (可以在 laravel 的根目录下找到)

<2>将 DB_HOST 更改为您的 LAN IP 地址(类似于 198.168.0.11)

DB_HOST=LAN_IP

<3>现在转到 phpmyadmin 并在权限选项卡中添加新用户并填写登录信息

选择主机作为any_host(或用您的PC名称填写主机)

于 2015-09-15T09:54:54.810 回答
1

我对 Laravel 和 Homestead 也比较陌生,但也有一些运气。

首先,我不确定不在 Homestead 中使用 MySQL 实例是不是一个好主意,但如果你有你的理由,我会相信你的话。也就是说,从您的“Homestead”目录中,您可以“vagrant ssh”进入您的 Homestead 虚拟机。

在这里,您可以 mysql -u homestead -psecret dbname 到您的数据库中,并像配置 XAMPP 实例一样随意配置它。如果您使用 Laravel 模型,只要它们与数据库匹配就可以了。

从 VM 内部连接到另一个数据库时,您是否尝试过从命令行连接到该外部数据库?只要您的 XAMPP MySQL 实例配置为接收远程连接并且您正确配置了用户,您就应该能够从 Vagrant VM 中的命令行进行测试。请参见下文,其中 192.168.1.196 是包含要连接的 MySQL 实例的盒子/VM 的 IP 地址。我没有运行 XAMPP,但通过提供本地网络地址,我能够从 VM 之外的 Vagrant Homestead 连接到在我的本地计算机上运行的另一个 MySQL 实例。“127.0.0.1”显然不起作用,因为 Vagrant VM 会将其视为自身。

mysql -u user -ppassword dbname -h 192.168.1.196

希望这可以帮助。

于 2015-04-14T16:13:53.767 回答