您的位置:首页 >如何在 Laravel Homestead 环境中正确配置数据库连接以执行迁移
发布于2026-05-02 阅读(0)
扫一扫,手机访问

本地运行 php artisan migrate 失败,提示“目标机器主动拒绝连接”,是因为 Lara vel 仍尝试连接本机 XAMPP 的 MySQL;而通过 vagrant ssh 进入 Homestead 后迁移成功,说明问题在于 .env 中数据库配置未指向 Homestead 虚拟机。只需将 DB_HOST 改为 Homestead 的 IP(如 192.168.10.10)即可解决。
在 Lara vel 开发中,使用 Homestead 作为统一开发环境时,一个常见误区是:在宿主机(Windows/macOS)上直接运行 Artisan 命令,却未让 Lara vel 连接 Homestead 内的数据库服务。默认情况下,.env 文件中的 DB_HOST=127.0.0.1 指向的是你本机(如 XAMPP/WAMP)的 MySQL,而非 Homestead 虚拟机——这正是报错 SQLSTATE[HY000] [2002] No connection could be made because the target machine actively refused it 的根本原因。
正确做法是:将 Lara vel 应用配置为通过网络连接 Homestead 的 MySQL 服务。Homestead 默认监听 3306 端口,并已预设数据库用户 homestead / 密码 secret。你需要确认两点:
然后,修改项目根目录下的 .env 文件,关键配置如下:
DB_CONNECTION=mysql DB_HOST=192.168.10.10 # ← 替换为 Homestead.yaml 中实际指定的 IP DB_PORT=3306 DB_DATABASE=cms # 与 Homestead 中创建的数据库名一致 DB_USERNAME=homestead DB_PASSWORD=secret
配置过程中,有几个细节需要特别注意:
php artisan config:clear 清除配置缓存,否则更改不会生效;完成配置后,在宿主机终端执行:
php artisan migrate
即可成功连接 Homestead 的 MySQL 并运行迁移,无需每次 vagrant ssh。
说到底,Homestead 是一个独立的 Linux 环境,其服务(MySQL、Nginx、Redis 等)默认仅对虚拟机内部或配置好的网络接口开放。Lara vel 应用若在宿主机运行,就必须显式指向 Homestead 的 IP,而非 127.0.0.1 —— 这既是网络隔离的设计使然,也是保障环境一致性的关键实践。理解这一点,类似的连接问题就能迎刃而解。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9