You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Win10环境下NestJS连接PostgreSQL启动失败求助

Win10本地NestJS对接PostgreSQL数据库连接错误解决指南

问题背景

我是前端开发人员,在Win10本地测试前端应用对接NestJS后端与PostgreSQL数据库时,按以下步骤操作后启动应用出现连接错误:

  1. 安装PostgreSQL
  2. 给NestJS项目执行npm install
  3. 运行pgAdmin4并为应用创建数据库
  4. 执行npm start启动项目

我的ormconfig配置如下:

module.exports = {
  "type": "postgres",
  "host": process.env.POSTGRES_HOST || "localhost",
  "port": process.env.POSTGRES_PORT || 5432,
  "username": process.env.POSTGRES_USER || "", // 这里试过各种可能的用户名
  "password": process.env.POSTGRES_PASSWORD || "", // 这里试过各种可能的密码
  "database": process.env.POSTGRES_DB || "my_database",
  "entities": ["dist/**/*.entity{.ts,.js}"],
  "synchronize": true,
  "logging": true
}

遇到的错误:

  • 一台电脑出现PostgreSQL服务器连接失败的错误
  • 另一台电脑出现:
[Nest]   ERROR [TypeOrmModule] Unable to connect to the database. 
FATAL: password authentication failed for user "postgres" (postgresql 14 with pgAdmin 4)

解决步骤

1. 确认PostgreSQL用户名和密码的正确性

  • 安装PostgreSQL时会设置默认用户postgres的密码,这是核心信息,不要留空或随意尝试,回忆安装时的设置
  • 验证方法:打开命令提示符,输入psql -U postgres,输入密码后如果能进入PostgreSQL命令行界面,说明用户名密码正确

2. 修正ormconfig配置

  • 不要让用户名和密码留空,直接填入正确的信息,示例配置:
module.exports = {
  "type": "postgres",
  "host": process.env.POSTGRES_HOST || "localhost",
  "port": process.env.POSTGRES_PORT || 5432,
  "username": process.env.POSTGRES_USER || "postgres", // 填实际用户名,默认是postgres
  "password": process.env.POSTGRES_PASSWORD || "你的PostgreSQL密码", // 填安装时设置的密码
  "database": process.env.POSTGRES_DB || "my_database",
  "entities": ["dist/**/*.entity{.ts,.js}"],
  "synchronize": true,
  "logging": true
}
  • 若使用环境变量,需确保Win10系统环境变量已正确配置,或通过@nestjs/config包加载.env文件中的变量

3. 确认PostgreSQL服务处于运行状态

  • 按下Win+R,输入services.msc打开服务列表
  • 找到名称为postgresql-x64-14(版本号对应你的安装版本)的服务,确认状态为“正在运行”,未运行则右键启动

4. 检查目标数据库是否存在

  • 打开pgAdmin4,确认你创建的my_database确实存在,且创建该数据库的用户与你配置的用户名一致

5. 解决密码认证失败问题(针对第二台电脑的错误)

  • 找到PostgreSQL的pg_hba.conf配置文件,默认路径一般为C:\Program Files\PostgreSQL\14\data\pg_hba.conf(版本号对应你的安装版本)
  • 找到如下格式的行:
host    all             all             127.0.0.1/32            scram-sha-256
  • 将scram-sha-256修改为md5,保存文件后重启PostgreSQL服务(修改文件需管理员权限)

验证

修改完成后,重新执行npm start启动NestJS应用,若仍有问题,可通过logging: true输出的详细日志进一步定位错误。

内容的提问来源于stack exchange,提问作者blacknighttext

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 02:05:36