Skip to content

常见问题

项目开发和使用中经常遇到的问题,以及解决方法。


环境相关

Q: 启动后端时报数据库连接失败

原因:MySQL 服务未启动,或数据库配置不匹配。

解决

  1. 确认 MySQL 服务已启动
  2. 检查 application.yml 中的数据库地址、用户名、密码
  3. 确认 mall 数据库已创建并导入了 docs/sql/mall.sql

Q: Redis 连接超时

原因:Redis 服务未启动。

解决:运行 redis-server 启动 Redis,默认端口 6379。

Q: 前端页面显示"暂无数据"但数据库有数据

原因:后端服务未启动或端口不对。

解决

  1. 确认 mall-admin(8080)和 mall-portal(8085)都已启动
  2. 打开浏览器控制台看是否有网络请求报错
  3. 检查 Vite 代理配置是否正确

功能相关

Q: 后台登录后侧边栏菜单为空

原因:当前管理员账号没有分配角色,或角色没有分配菜单权限。

解决:用超级管理员(admin)登录 → 权限管理 → 给该管理员分配角色 → 给角色分配菜单。

Q: 商品分类"是否显示"开关切换后自动弹提示

原因:这是 el-switch 组件的已知行为,初始化时会触发 change 事件。

解决:已在代码中处理,通过标记位防止初始化时误触发。

Q: 前台商城页面打不开

原因:前台需要 mall-portal(8085)服务运行。

解决:确保同时启动了 mall-adminmall-portal 两个后端服务。

Q: 退货申请审核按钮点了没反应

原因:可能是 keep-alive 缓存导致页面数据未刷新。

解决:离开页面后重新进入,或刷新页面后再操作。


开发相关

Q: 新增的 API 返回 401 未授权

原因:新接口没有加入安全白名单。

解决:在对应的 application.yml 中的 secure.ignored.urls 里添加新接口路径。

Q: 前端编译报 TypeScript 错误

解决

  1. 运行 cd mall-admin-web && npx tsc --noEmit 查看具体错误
  2. 检查是否有新增的类型未定义
  3. 确认 src/types/ 下的类型文件是否完整

Q: 修改了代码但页面没变化

原因:可能是浏览器缓存或 Vue keep-alive 缓存。

解决

  1. 浏览器硬刷新(Ctrl + Shift + R)
  2. 如果是列表页,检查是否需要在 onActivated 中重新加载数据

数据相关

Q: 数据库 73 张表在哪里看

所有表结构定义在 docs/sql/mall.sql 文件中。业务含义可参考 数据字典

Q: 可以新增数据库表吗

当前阶段不新增表,所有功能基于现有 73 张表实现。

Q: 测试数据在哪里

数据库脚本已包含基础数据(管理员、角色、菜单、部分商品等)。如需更多测试数据,可参考数据字典手动添加。

Mall 电商系统知识库