问题排查指南
本文档帮助您解决 OntiCards 部署和运行过程中遇到的问题。
一、部署问题
1.1 Docker 启动失败
症状:执行 docker-compose up 后容器未能正常启动
- 1
检查 Docker 是否正常运行
- 2
docker --version docker-compose --version - 3
查看详细错误信息
- 4
docker-compose up不加 -d 参数可以看到实时日志
- 5
常见错误速查表
| 错误信息 | 可能原因 | 解决方法 |
|---|---|---|
| "docker: command not found" | Docker 未安装 | 安装 Docker Desktop |
| "docker daemon not running" | Docker 服务未启动 | 启动 Docker 服务 |
| "port is already allocated" | 端口被占用 | 修改 docker-compose.yml 中的端口或释放占用端口 |
1.2 端口被占用
症状:提示 "port is already allocated" 或 " Ports are not available"
- 1
查看端口占用情况
- 2
# Windows netstat -ano | findstr :3000 - 3
Linux/Mac
lsof -i :3000
- 4
关闭占用端口的程序,或修改
docker-compose.yml中的端口映射 - 5
services: frontend: ports:- "3001:3000" # 改为其他端口
1.3 容器不断重启
症状:容器启动后立即退出或反复重启
- 1
查看容器日志
- 2
docker-compose logs -f <服务名> - 3
常见原因及解决
| 原因 | 解决方法 |
|---|---|
| 环境变量配置错误 | 检查 .env 文件配置 |
| 数据库连接失败 | 确认数据库服务正常且网络可达 |
| 磁盘空间不足 | 清理磁盘空间 |
二、访问问题
2.1 无法访问前端页面
症状:浏览器打开 http://localhost:3000 显示无法连接
- 1
确认容器是否运行
- 2
docker-compose ps - 3
查看前端日志
- 4
docker-compose logs -f frontend - 5
检查端口映射
- 6
docker port onticards-frontend - 7
对照常见原因清单
| 现象 | 处理方式 |
|---|---|
| 容器未启动 | 执行 docker-compose up -d |
| 端口映射错误 | 检查 docker-compose.yml |
| 防火墙拦截 | 检查防火墙设置 |
2.2 后端 API 请求失败
症状:前端页面能打开,但操作时报错 "请求失败"
- 1
确认后端服务是否运行
- 2
docker-compose ps backend - 3
查看后端日志
- 4
docker-compose logs -f backend - 5
测试 API 健康检查
- 6
curl http://localhost:8000/api/health
三、数据库连接问题
3.1 无法连接目标数据库
症状:添加数据源时 "测试连接" 失败
- 1
检查目标数据库是否运行
- 2
确认服务进程已启动
- 3
确认网络连通性
- 4
# 测试端口是否可达 telnet <目标IP> <端口> - 5
Windows PowerShell
Test-NetConnection -ComputerName <目标IP> -Port <端口>
- 6
检查防火墙设置
- 7
确认目标数据库所在主机的 3306/5432 等端口已放行
- 8
确认用户名密码正确
- 9
以
mysql -u user -p等命令直连测试一次 - 10
确认数据库允许远程连接
- 11
检查
bind-address配置(如 MySQL 默认 127.0.0.1)
常见数据库端口速查
| 数据库 | 默认端口 |
|---|---|
| MySQL | 3306 |
| PostgreSQL | 5432 |
| Oracle | 1521 |
| SQL Server | 1433 |
| 达梦 | 5236 |
| KingBase | 54321 |
3.2 连接超时
症状:测试连接时提示 "连接超时"
提示
- 网络不可达
- 防火墙拦截
- 数据库最大连接数已满
- 应用端连接池达到上限
提示
- 检查网络和防火墙(
telnet/Test-NetConnection)
- 联系 DBA 增加连接数或释放空闲连接
- 确认连接信息中的主机地址正确
四、LLM 调用问题
4.1 LLM API 调用失败
症状:查询时报错 "LLM 调用失败" 或 "API 请求错误"
- 1
查看后端日志中的 LLM 调用错误
- 2
docker-compose logs -f backend | grep -i "llm\|openai\|qwen" - 3
检查环境变量配置是否加载
- 4
docker-compose exec backend env | grep LLM - 5
对照错误信息表
| 错误信息 | 可能原因 | 解决方法 |
|---|---|---|
| "Invalid API key" | API Key 错误 | 检查 LLM_API_KEY 配置 |
| "connection timeout" | 网络不通/代理问题 | 检查网络和代理配置 |
| "rate limit exceeded" | 请求频率超限 | 降低请求频率或升级套餐 |
| "model not found" | 模型名称错误 | 检查 LLM_MODEL 配置 |
4.2 网络访问问题
症状:国内无法访问 OpenAI 等国外服务
方案一:配置代理
# 在 .env 中配置代理 LLM_BASE_URL=http://your-proxy:7890方案二:使用国内模型
LLM_PROVIDER=qwen # 阿里通义千问 LLM_PROVIDER=moonshot # 月之暗面五、数据卡片生成问题
5.1 数据卡片生成缓慢
症状:添加数据源后,数据卡片生成很慢或卡住
提示
- 表数量太多
- LLM 响应慢
- 网络不稳定
提示
- 耐心等待,首次生成需要一些时间
- 检查 LLM 服务是否正常
- 表数量较多时可以分批添加
5.2 数据卡片生成失败
症状:提示 "数据卡片生成失败"
- 1
查看后端日志中的具体错误
- 2
docker-compose logs -f backend寻找 stack trace - 3
检查 LLM 服务是否正常
- 4
用其他 client(如
curl)直接调用 LLM,确认可用 - 5
确认目标数据库连接正常
- 6
在数据源列表中点击「测试连接」
- 7
检查数据库权限
- 8
需要
SELECT与读取表结构(DBA)的权限
六、质检功能问题
6.1 质检规则执行失败
症状:执行质检时报错
提示
- 规则 SQL 语法错误 → 检查规则配置
- 数据库连接问题 → 确认数据源正常
- 权限不足 → 确认有
SELECT权限
6.2 质检结果为空
症状:执行完成后没有检测到任何问题
提示
- 数据确实没有问题
- 规则配置过于宽松
- 规则条件与实际数据不匹配
七、性能问题
7.1 系统运行缓慢
- 1
检查资源使用
- 2
docker stats - 3
对照常见原因
| 现象 | 处理方式 |
|---|---|
| 内存不足 | 增加 Docker 内存限制 |
| 磁盘空间不足 | 清理磁盘 |
| 并发请求过多 | 限流或扩容 |
7.2 查询超时
症状:查询长时间无响应或提示超时
提示
- 增加查询超时时间配置
- 减少查询的数据范围(如缩短时间范围)
- 检查数据库性能
八、日志查看方法
8.1 查看所有服务日志
docker-compose logs -f
8.2 查看指定服务日志
# 后端日志
docker-compose logs -f backend
# 前端日志
docker-compose logs -f frontend
8.3 限制日志行数
docker-compose logs --tail=100 backend
8.4 搜索特定关键词
docker-compose logs | grep -i "error"
九、快速诊断命令速查
- 1
检查容器状态
- 2
docker-compose ps - 3
检查资源使用
- 4
docker stats - 5
检查端口占用
- 6
netstat -ano | findstr "3000 8000" - 7
测试网络连通性
- 8
ping <目标地址> - 9
测试端口连通性
- 10
telnet <目标地址> <端口> - 11
查看服务日志
- 12
docker-compose logs -f
十、获取更多帮助
如果以上方法无法解决您的问题:
- 查看 FAQ 常见问题解答
- 查看 用户手册 了解功能使用
- 提交 GitHub Issue:https://github.com/stepll2026/OntiCards/issues
提交 Issue 时请提供:
- 错误日志(敏感信息请脱敏)
- 操作步骤描述
- 环境信息(操作系统、Docker 版本等)
本文档最后更新时间:2026 年 08 月