Files
Lannamokia 803e6cdaee feat: 添加PostgreSQL数据库集成和机台管理功能
- 新增PostgreSQL数据库支持,包含内置和外部数据库两种部署模式
- 实现机台管理功能,包括保护状态控制和VHD关键词设置
- 添加用户认证系统,支持会话管理和权限控制
- 更新Docker配置,支持数据库持久化和健康检查
- 扩展API接口,提供完整的RESTful API文档
- 更新客户端代码以支持机台ID和保护检查功能
- 添加数据库初始化脚本和配置指南
2025-10-21 20:10:18 +08:00

213 lines
4.5 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.
# PostgreSQL安装和配置指南
## 📋 概述
本指南将帮助你在Windows系统上安装和配置PostgreSQL数据库,以支持VHDSelectServer的数据持久化功能。
## 🔧 安装PostgreSQL
### 方法一:官方安装程序(推荐)
1. **下载PostgreSQL**
- 访问:https://www.postgresql.org/download/windows/
- 点击"Download the installer"
- 选择最新版本(推荐PostgreSQL 15或16)
2. **运行安装程序**
- 以管理员身份运行下载的安装程序
- 按照以下设置进行安装:
```
安装组件:
✅ PostgreSQL Server
✅ pgAdmin 4
✅ Stack Builder
✅ Command Line Tools
安装目录:C:\Program Files\PostgreSQL\16 (默认)
数据目录:C:\Program Files\PostgreSQL\16\data (默认)
超级用户密码:password
端口:5432
区域设置:[Default locale]
```
3. **完成安装**
- 安装完成后,确保PostgreSQL服务已启动
- 可以在"服务"中查看"postgresql-x64-16"服务状态
### 方法二:使用包管理器
如果你使用Chocolatey:
```bash
choco install postgresql
```
如果你使用Scoop:
```bash
scoop install postgresql
```
## 🗄️ 配置数据库
### 自动配置(推荐)
1. **运行配置脚本**
```bash
cd VHDSelectServer
setup_database.bat
```
2. **输入密码**
- 脚本会提示输入PostgreSQL超级用户密码
- 输入安装时设置的密码(默认:password)
### 手动配置
如果自动配置失败,可以手动执行以下步骤:
1. **打开命令提示符**
```bash
# 设置PostgreSQL环境变量(如果需要)
set PATH=%PATH%;C:\Program Files\PostgreSQL\16\bin
```
2. **连接到PostgreSQL**
```bash
psql -U postgres -h localhost
```
3. **执行配置脚本**
```sql
\i setup_postgresql.sql
```
## 🔍 验证安装
### 检查PostgreSQL服务
1. **检查服务状态**
```bash
sc query postgresql-x64-16
```
2. **启动服务(如果未运行)**
```bash
net start postgresql-x64-16
```
### 测试数据库连接
1. **使用psql连接**
```bash
psql -U postgres -h localhost -d vhd_select
```
2. **查看表结构**
```sql
\dt
SELECT * FROM machines;
```
### 测试VHDSelectServer连接
1. **更新.env文件**
确保`.env`文件中的配置正确:
```env
DB_HOST=localhost
DB_PORT=5432
DB_NAME=vhd_select
DB_USER=postgres
DB_PASSWORD=password
```
2. **重启VHDSelectServer**
```bash
node server.js
```
3. **检查连接状态**
- 查看控制台输出,应该显示"数据库连接成功"
- 访问Web UI:http://localhost:8080
## 🛠️ 故障排除
### 常见问题
1. **"psql不是内部或外部命令"**
- 解决方案:将PostgreSQL的bin目录添加到系统PATH环境变量
- 路径:`C:\Program Files\PostgreSQL\16\bin`
2. **连接被拒绝**
- 检查PostgreSQL服务是否运行
- 检查防火墙设置
- 确认端口5432未被占用
3. **密码认证失败**
- 确认超级用户密码正确
- 检查pg_hba.conf配置文件
4. **数据库不存在**
- 重新运行setup_postgresql.sql脚本
- 手动创建数据库:`CREATE DATABASE vhd_select;`
### 重置数据库
如果需要重置数据库:
```sql
-- 连接到postgres数据库
\c postgres
-- 删除现有数据库
DROP DATABASE IF EXISTS vhd_select;
-- 重新运行配置脚本
\i setup_postgresql.sql
```
## 📊 数据库结构
### machines表结构
| 字段名 | 类型 | 说明 |
|--------|------|------|
| id | SERIAL | 主键,自增ID |
| machine_id | VARCHAR(255) | 机台唯一标识符 |
| protected | BOOLEAN | 保护状态 |
| vhd_keyword | VARCHAR(50) | VHD关键词 |
| created_at | TIMESTAMP | 创建时间 |
| updated_at | TIMESTAMP | 更新时间 |
### 索引
- `idx_machines_machine_id`: machine_id字段索引
- `idx_machines_protected`: protected字段索引
## 🔐 安全建议
1. **修改默认密码**
- 生产环境中应修改默认的postgres用户密码
2. **创建专用用户**
```sql
CREATE USER vhd_user WITH PASSWORD 'secure_password';
GRANT ALL PRIVILEGES ON DATABASE vhd_select TO vhd_user;
```
3. **配置防火墙**
- 限制PostgreSQL端口的访问权限
4. **定期备份**
```bash
pg_dump -U postgres vhd_select > backup.sql
```
## 📞 获取帮助
如果遇到问题,可以:
1. 查看PostgreSQL日志文件
2. 检查VHDSelectServer控制台输出
3. 使用pgAdmin 4图形界面管理数据库
4. 参考PostgreSQL官方文档:https://www.postgresql.org/docs/