You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Homestead双数据库创建失败及连接问题求助

Laravel Homestead 多数据库创建失败排查与解决

核心问题原因

  1. Homestead.yaml 数据库配置格式错误(YAML对缩进、格式高度敏感)
  2. 配置更新后未正确触发虚拟机配置刷新
  3. Laravel 数据库连接配置存在拼写或参数错误

分步解决办法

1. 修正 Homestead.yaml 配置格式

确保 databases 字段为数组格式,且缩进必须用空格(禁止使用制表符):

databases:
    - homestead
    - homestead2

注意每个数据库项前是「2个空格 + 短横线 + 空格」,格式错误会直接导致Homestead脚本忽略第二个数据库的创建请求。

2. 强制刷新虚拟机配置

单纯执行 vagrant up --provision 可能因缓存未生效,改用重启加配置刷新的组合命令:

vagrant reload --provision

该命令会先重启虚拟机,再重新执行Homestead的初始化脚本,确保数据库创建逻辑被完整触发。

3. 手动创建数据库(兜底方案)

若上述步骤仍无效,直接进入虚拟机手动创建目标数据库:

  1. 登录虚拟机:vagrant ssh
  2. 连接MySQL(默认账号:homestead,密码:secret):
    mysql -u homestead -psecret
    
  3. 创建数据库:
    CREATE DATABASE homestead2;
    
  4. 退出MySQL:exit

4. 验证Laravel双数据库配置

检查 config/database.php 中的第二个连接配置:

'mysql2' => [
    'driver' => 'mysql',
    'host' => env('DB_HOST_2', '127.0.0.1'),
    'port' => env('DB_PORT_2', '3306'),
    'database' => env('DB_DATABASE_2', 'homestead2'),
    'username' => env('DB_USERNAME_2', 'homestead'),
    'password' => env('DB_PASSWORD_2', 'secret'),
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix' => '',
    'strict' => true,
],

检查 .env 对应配置项:

DB_HOST_2=127.0.0.1
DB_PORT_2=3306
DB_DATABASE_2=homestead2
DB_USERNAME_2=homestead
DB_PASSWORD_2=secret

注意:Laravel在Homestead虚拟机内运行时,数据库端口用默认3306即可,无需使用本地转发的33060端口。

5. 测试连接与迁移

执行指定连接的迁移命令验证配置有效性:

php artisan migrate --database=mysql2

PhpStorm连接时,需使用本地转发端口(默认33060),账号密码与虚拟机内MySQL一致,数据库名填写homestead2。

内容的提问来源于stack exchange,提问作者Lilian Carion

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 13:06:26