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