query-database/README.md
query-database 6208da9725 feat:更新
2026-03-27 15:52:00 +08:00

2.0 KiB
Raw Permalink Blame History

MySQL 查询练习网站

一个面向新手/一般/进阶的 MySQL 查询练习网站:

  • 登录注册
  • 首次引导(填姓名/选模块/经验/选择模拟库或导入库)
  • 题库分级、在线运行 SQL、判题与进度保存
  • 支持模拟数据库(内置电商库/人事库)与导入自定义数据库(上传初始化 SQL

运行方式(本地开发)

1) 启动 MySQLDocker

在项目根目录执行:

docker compose up -d

默认连接信息:

  • Host: 127.0.0.1
  • Port: 3306
  • User: root
  • Password: root

2) 启动后端Go + Gin

打开一个终端:

cd api
go run .

后端默认端口:http://localhost:8080

可选环境变量:

  • PORT(默认 8080
  • JWT_SECRET(默认 dev-secret
  • SQLITE_PATH(默认 ./data/app.db
  • MYSQL_HOST MYSQL_PORT MYSQL_USER MYSQL_PASSWORD

3) 启动前端Vite + Vue3

打开另一个终端:

pnpm install
pnpm run dev

前端会通过 Vite 代理把 /api 转发到 http://localhost:8080

部署说明(生产)

当前仓库支持:

  • 前端+后端+MySQL 用 Docker Compose 部署到一台服务器(或任意支持 Docker 的环境)

1) 前端+后端+MySQLDocker Compose

在服务器上:

docker compose -f docker-compose.prod.yml up -d

默认会把前端暴露到 http://<你的服务器>/

前端容器内置 Nginx

  • 静态资源由 Nginx 提供
  • /api/* 会反向代理到后端容器 api:8080,因此生产环境无需单独配置 VITE_API_BASE_URL

安全默认:生产 compose 默认不对外暴露后端 8080 端口(只允许通过前端 Nginx 访问)。你可以用 http://<你的服务器>/health 检查后端健康。

2) 可选:前端单独部署

如果你希望把前端放到 CDN/其他静态站点,也可以通过环境变量 VITE_API_BASE_URL 指向后端。

常用命令

  • pnpm run checkTypeScript 类型检查
  • pnpm run lintESLint 检查
  • cd api && go test ./...:后端单元测试