Drupal Drush报错:指定数据库连接default未定义求助
解决Drush无法识别Drupal多站点配置导致的数据库连接错误
问题根源
Drush当前默认加载了sites/default的配置,而非你指定的sites/mysite,原因是Drush未正确匹配到目标站点目录,导致无法读取settings.local.php中的数据库配置。
解决方案
1. 强制指定Drush的站点路径
修改drush/sites/local.site.yml,添加site_path字段直接指定站点目录,跳过自动匹配逻辑:
mysite: root: /Users/me/Desktop/Work/Projects/mysite/docroot uri: mysite.local site_path: sites/mysite
2. 确保settings.local.php被正确加载
检查sites/mysite/settings.php文件末尾是否包含以下代码,保证本地配置能被Drupal读取:
if (file_exists($app_root . '/' . $site_path . '/settings.local.php')) { include $app_root . '/' . $site_path . '/settings.local.php'; }
如果没有,手动添加这段代码,否则你的数据库配置不会生效。
3. 验证配置并测试
先执行命令确认站点路径是否正确:
drush @local.mysite status
若输出的Site path显示为sites/mysite,再执行缓存刷新命令:
drush @local.mysite cr
额外排查要点
- 确认本地
hosts文件已配置127.0.0.1 mysite.local,保证uri能被正确解析。 - 若上述配置仍不生效,可尝试进入
docroot目录直接执行命令,明确指定站点域名:cd /Users/me/Desktop/Work/Projects/mysite/docroot drush cr -l mysite.local - 检查Drush版本与Drupal版本是否兼容(Drupal 9/10推荐使用Drush 11+)。
内容的提问来源于stack exchange,提问作者Happy Coder
相关产品推荐
相关产品推荐

