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

Drupal7执行prepare_db脚本报UserListException找不到admin用户如何解决

Drupal7 执行数据库初始化脚本重置admin密码报错排查解决

报错核心原因是Drush执行用户密码重置逻辑时,无法在当前引导的Drupal实例中匹配到用户名为admin的账号,按以下步骤逐次排查即可:

  • 校验Drush数据库连接正确性
    进入Drupal项目根目录执行drush status,确认两项核心配置:
    1. Drupal bootstrap 状态为 Successful
    2. 数据库配置项指向你预期使用的本地开发数据库
      若引导失败或连错数据库,检查脚本中执行Drush命令的工作目录配置、sites/default/settings.php中的数据库连接参数是否正确,确保Drush能正常读到本地开发库。
  • 确认超级管理员实际用户名
    Drupal7默认超级管理员uid为1,很多生产库导出时会做脱敏修改,把默认用户名admin改成其他值。直接在数据库执行SQL查询实际用户名:
    SELECT uid, name FROM users WHERE uid = 1;
    
    如果查询返回的name字段不是admin,要么把脚本中重置密码命令的目标用户名改成实际值,要么直接用uid指定目标用户,绕开用户名匹配逻辑。
  • 修复Windows Git Bash参数转义问题
    Windows环境下Git Bash向PHP类CLI程序传参时,经常出现字符串转义异常,导致Drush接收到的用户名参数带不可见的特殊字符,匹配失败。不要在脚本里用用户名作为重置目标,直接把脚本中重置密码的命令替换为按uid操作的版本,兼容性最好:
    # 原命令一般是 drush user-password admin --password="admin"
    # 替换为以下命令,直接指定uid=1的超级管理员
    drush user-password 1 --password="admin"
    
    替换后单独在Git Bash中手动执行一次该命令,确认能正常返回密码重置成功的提示,再重新跑全量脚本。
  • 校验Drush版本兼容性
    Drupal7最高兼容Drush 8版本,你当前使用的是全局Composer安装的Drush,执行drush --version查看版本号,如果版本≥9,会出现Drupal引导异常、用户匹配逻辑错误的问题。卸载高版本后安装兼容版本即可:
    composer global remove drush/drush
    composer global require drush/drush:8.*
    
  • 检查数据库导入完整性
    若以上步骤都无效,执行drush sqlq "SELECT COUNT(*) FROM users;"查询用户表数据量,如果返回值小于2(仅存在uid=0的匿名用户),说明之前的数据库备份导入不完整,重新导入完整的数据库备份后再执行脚本。

快速修复:90%的同场景报错直接替换重置密码命令为按uid=1操作的版本即可解决,无需全量排查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 08:57:20