# 2.1 开发环境准备 :::tip 概述 本章指导您从零搭建开发环境,包括 Go、Node.js/pnpm、MySQL、Redis 的安装与配置。项目后端支持 MySQL、PostgreSQL、SQL Server、Oracle、SQLite 五种数据库,默认使用 MySQL。 ::: ## 安装流程总览 ```mermaid graph TD A[开始] --> B[安装 Go 1.27+] B --> C[安装 MySQL 8.x] C --> D[安装 Redis] D --> E[安装 Node.js 18+ / pnpm] E --> F[安装 GoFrame CLI gf] F --> G[配置开发工具] G --> H[环境就绪 ✅] style A fill:#e8f5e9 style H fill:#e8f5e9 style C fill:#fff3e0 ``` ## Go 安装 :::warning 版本要求 项目 go.mod 声明 `go 1.27.2`,请安装 Go 1.27.2 及以上版本,过低版本会直接编译失败。 ::: ### Windows 从 [https://go.dev/dl/](https://go.dev/dl/) 下载 `go1.27.2.windows-amd64.msi` 默认安装。验证: ```sh go version # go version go1.27.2 windows/amd64 ``` 建议配置国内代理(下载依赖加速): ```sh go env -w GOPROXY=https://goproxy.cn,direct ``` ### GoFrame CLI(可选但推荐) ```sh go install github.com/gogf/gf/cmd/gf/v2@latest gf -v ``` `gf` 仅在表结构变更后刷新 dao 时使用(`gf gen dao -c hack/config.yaml`),日常开发不依赖。 ## MySQL 安装 推荐 MySQL 8.x,安装后创建数据库(**注意库名含点**): ```sql CREATE DATABASE `easygoadmin.goframe.elevue` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ``` 默认连接账号 `root/root@127.0.0.1:3306`,如不同请同步修改 `manifest/config/config.yaml` 的 `database.default.link`。 ::: warning 库名注意 库名 `easygoadmin.goframe.elevue` 含点号,DDL 语句中引用库名/表名时 MySQL 需要反引号包裹。MySQL 定稿导入脚本为 `document/mysql/easygoadmin.goframe.elevue.sql`(其余方言见 `document/{postgresql,sqlserver,oracle,sqlite}/`)。 ::: ## Redis 安装 Redis 用于缓存、JWT 黑名单、验证码、在线用户、限流计数、任务执行锁。默认连接 `127.0.0.1:6379`,密码 `123456`(见 config.yaml `redis.default.pass`)。 ```sh # Windows 可使用 Memurai / WSL / Redis for Windows # 验证 redis-cli -a 123456 ping # PONG ``` ::: tip 降级说明 Redis 不可用时系统自动降级为进程内存缓存(`utility/cache`),服务可正常启动,但限流计数、任务锁、在线用户、黑名单等多实例共享能力退化为单机语义。生产环境 Redis 必须可用。 ::: ## Node.js / pnpm 安装 前端要求 Node.js 18+,推荐 pnpm 包管理: ```sh # 安装 Node.js(https://nodejs.org LTS 版) node -v # v18+ # 安装 pnpm npm install -g pnpm pnpm -v ``` ## 开发工具推荐 | 工具 | 用途 | |------|------| | GoLand / VS Code + Go 插件 | 后端开发 | | VS Code + Volar 插件 | 前端开发(关闭 Vetur) | | Navicat / DBeaver | 数据库管理 | | RedisInsight / Another Redis Desktop | Redis 管理 | | Apifox / Postman | 接口调试(也可直接用内置 /swagger) | ## 环境检查清单 + [ ] `go version` 输出 1.27.2+ + [ ] MySQL 已建库 `easygoadmin.goframe.elevue`(utf8mb4) + [ ] `redis-cli ping` 返回 PONG + [ ] `node -v` 输出 18+,`pnpm -v` 正常 + [ ] `manifest/config/config.yaml` 中数据库/Redis 连接信息与实际一致