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

FusionAuth控制台登录失败:InvalidReferenceException与loginData缺失求助

解决FusionAuth 1.9.1管理员控制台仪表盘加载失败的问题

咱们一步步拆解你遇到的问题:首先那条慢查询确实是FusionAuth仪表盘用来拉取最近5条登录记录的标准内置查询,在用户量达到7-8k且raw_logins表积累大量数据的情况下,1.9.1这个旧版本确实存在查询性能瓶颈,进而导致页面加载超时、模板变量缺失的问题。

先理清楚现象背后的原因:

  • 输入错误密码时,身份验证直接失败,不会触发仪表盘的登录数据查询,所以页面能正常返回错误提示;
  • 验证成功后,控制台会执行那条raw_logins关联查询拉取登录记录,因为查询慢到超时,后端无法生成loginData变量,FreeMarker模板渲染时就会抛出InvalidReferenceException,进而导致页面卡顿、JS报错。

具体解决方案:

1. 临时应急:绕过仪表盘操作

你已经发现访问/admin/user、/admin/group这类非仪表盘页面可以正常使用管理功能,先暂时用这些页面完成日常操作,同时处理底层性能问题。

2. 优化数据库查询(最直接的临时修复)

这条慢查询的核心问题是raw_logins表缺少合适的索引,导致排序和关联操作效率极低:

  • 给raw_logins表创建联合索引,大幅提升查询速度:
    CREATE INDEX idx_raw_logins_instant_app_user ON raw_logins (instant DESC, applications_id, users_id);
    
  • 清理旧的登录日志数据:如果不需要长期保留所有登录记录,手动清理旧数据(比如保留90天内的):
    DELETE FROM raw_logins WHERE instant < DATE_SUB(NOW(), INTERVAL 90 DAY);
    
    清理后可以给表做优化(MySQL):
    OPTIMIZE TABLE raw_logins;
    

3. 升级FusionAuth版本(彻底解决问题)

1.9.1是比较老旧的版本,官方在后续版本中专门优化了仪表盘的登录数据查询逻辑,修复了这类性能问题。建议升级到最新的兼容版本(注意升级前一定要备份数据库和配置文件),新版本会更高效地处理登录日志的检索,避免类似的锁连接和超时问题。

4. 调整数据库连接池配置

Windows Server上的FusionAuth默认数据库连接池大小可能不足以应对慢查询导致的连接占用,修改fusionauth.properties中的连接池配置:

# 调整最大连接数,默认可能是10,根据服务器配置调到20-30
database.hikari.maximum-pool-size=25

修改后重启FusionAuth服务,避免慢查询占满所有数据库连接。

5. 验证Elasticsearch同步状态

虽然当前问题出在SQL查询,但1.9.1版本中部分登录日志功能依赖Elasticsearch,检查ES的运行状态和同步任务是否正常,确保没有数据同步延迟导致的额外负载。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 22:42:57