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

73 lines
2.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# MySQL 查询练习网站
一个面向新手/一般/进阶的 MySQL 查询练习网站:
- 登录注册
- 首次引导(填姓名/选模块/经验/选择模拟库或导入库)
- 题库分级、在线运行 SQL、判题与进度保存
- 支持模拟数据库(内置电商库/人事库)与导入自定义数据库(上传初始化 SQL
## 运行方式(本地开发)
### 1) 启动 MySQLDocker
在项目根目录执行:
```bash
docker compose up -d
```
默认连接信息:
- Host: `127.0.0.1`
- Port: `3306`
- User: `root`
- Password: `root`
### 2) 启动后端Go + Gin
打开一个终端:
```bash
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
打开另一个终端:
```bash
pnpm install
pnpm run dev
```
前端会通过 Vite 代理把 `/api` 转发到 `http://localhost:8080`
## 部署说明(生产)
当前仓库支持:
- 前端+后端+MySQL 用 Docker Compose 部署到一台服务器(或任意支持 Docker 的环境)
### 1) 前端+后端+MySQLDocker Compose
在服务器上:
```bash
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 check`TypeScript 类型检查
- `pnpm run lint`ESLint 检查
- `cd api && go test ./...`:后端单元测试