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

4.5 KiB
Raw Blame History

PostgreSQL安装和配置指南

📋 概述

本指南将帮助你在Windows系统上安装和配置PostgreSQL数据库,以支持VHDSelectServer的数据持久化功能。

🔧 安装PostgreSQL

方法一:官方安装程序(推荐)

  1. 下载PostgreSQL

  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

choco install postgresql

如果你使用Scoop

scoop install postgresql

🗄️ 配置数据库

自动配置(推荐)

  1. 运行配置脚本

    cd VHDSelectServer
    setup_database.bat
    
  2. 输入密码

    • 脚本会提示输入PostgreSQL超级用户密码
    • 输入安装时设置的密码(默认:password)

手动配置

如果自动配置失败,可以手动执行以下步骤:

  1. 打开命令提示符

    # 设置PostgreSQL环境变量(如果需要)
    set PATH=%PATH%;C:\Program Files\PostgreSQL\16\bin
    
  2. 连接到PostgreSQL

    psql -U postgres -h localhost
    
  3. 执行配置脚本

    \i setup_postgresql.sql
    

🔍 验证安装

检查PostgreSQL服务

  1. 检查服务状态

    sc query postgresql-x64-16
    
  2. 启动服务(如果未运行)

    net start postgresql-x64-16
    

测试数据库连接

  1. 使用psql连接

    psql -U postgres -h localhost -d vhd_select
    
  2. 查看表结构

    \dt
    SELECT * FROM machines;
    

测试VHDSelectServer连接

  1. 更新.env文件 确保.env文件中的配置正确:

    DB_HOST=localhost
    DB_PORT=5432
    DB_NAME=vhd_select
    DB_USER=postgres
    DB_PASSWORD=password
    
  2. 重启VHDSelectServer

    node server.js
    
  3. 检查连接状态

🛠️ 故障排除

常见问题

  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;

重置数据库

如果需要重置数据库:

-- 连接到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. 创建专用用户

    CREATE USER vhd_user WITH PASSWORD 'secure_password';
    GRANT ALL PRIVILEGES ON DATABASE vhd_select TO vhd_user;
    
  3. 配置防火墙

    • 限制PostgreSQL端口的访问权限
  4. 定期备份

    pg_dump -U postgres vhd_select > backup.sql
    

📞 获取帮助

如果遇到问题,可以:

  1. 查看PostgreSQL日志文件
  2. 检查VHDSelectServer控制台输出
  3. 使用pgAdmin 4图形界面管理数据库
  4. 参考PostgreSQL官方文档:https://www.postgresql.org/docs/