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

BLT 9配置Drupal多站点异常:指定数据库未被使用求助

解决BLT 9多站点Setup时未使用指定数据库的问题

我之前配置BLT多站点的时候也踩过这个一模一样的坑,核心问题是BLT并不会自动同步DrupalVM的数据库配置到站点专属的BLT配置里,得手动对齐配置逻辑。给你一步步的排查和解决方法:

1. 配置站点专属的BLT数据库参数

BLT的多站点配置需要在站点专属的YML文件里明确数据库信息,不会自动读取DrupalVM的box/config.yml。你需要创建(或修改)blt/config/sites/example.yml文件,填入和DrupalVM里完全一致的数据库配置:

drupal:
  database:
    database: example_db  # 和你在box/config.yml里定义的数据库名保持一致
    username: example_user  # 对应你配置的数据库用户名
    password: your_db_password  # 对应数据库密码
    host: localhost
    port: 3306

如果这个文件不存在,直接新建即可,BLT会自动识别并加载这个站点的专属配置。

2. 确保站点settings.php正确引入BLT配置

检查docroot/sites/example/settings.php,确保里面有引入BLT的配置文件,这样BLT的数据库参数才能覆盖默认的数据库连接:

// 这行代码一般BLT初始化多站点时会自动添加,要是没加就手动补上
require DRUPAL_ROOT . '/../blt/vendor/acquia/blt/settings/blt.settings.php';

注意:不要在这个文件里手动硬编码数据库连接信息,否则会和BLT的配置产生冲突。

3. 验证site参数的正确性

执行blt setup --define site=example时,要确认example是BLT识别的站点机器名:

  • 运行blt sites命令,查看输出里是否包含example站点;
  • 确保站点目录名docroot/sites/example和BLT配置里的站点名称完全一致(大小写敏感)。

4. 清空BLT配置缓存

BLT会缓存配置信息,有时候修改配置后不会立即生效,先清空缓存再重新执行setup:

blt config:clear
blt setup --define site=example -v

加-v可以查看verbose输出,能帮你精准定位到底是哪一步读取了错误的数据库配置。

5. 确认DrupalVM的数据库已正确创建

最后验证一下DrupalVM里的数据库是否真的存在:

vagrant ssh
mysql -u example_user -p  # 输入对应的数据库密码
SHOW DATABASES;  # 查看是否存在example_db

如果数据库没创建成功,得先重新执行vagrant provision确保数据库和用户都正确生成。

如果以上步骤都做完还是有问题,仔细看一下BLT的日志输出,找有没有数据库连接相关的错误信息,一般就能快速定位到问题了。

内容的提问来源于stack exchange,提问作者Peter Csukardi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:20:43