【问题标题】:NestJS [TypeOrmModule] Unable to connect to the databaseNestJS [TypeOrmModule] 无法连接数据库
【发布时间】:2021-05-11 03:59:59
【问题描述】:

我想连接到远程 PostgreSQL 数据库(托管在 Heroku 上)并收到此错误:

error: no pg_hba.conf entry for host "<My public IP address>", user "<username>", database "<dbname>", SSL off

这是我的app.module.ts

import { Module } from '@nestjs/common';
import { TypeOrmModule, TypeOrmModuleOptions } from '@nestjs/typeorm';

const cfg: TypeOrmModuleOptions = {
  type: 'postgres',
  host: process.env.DB_HOST,
  database: process.env.DB_NAME,
  username: process.env.DB_USER,
  password: process.env.DB_PASSWORD,
  port: Number(process.env.DB_PORT),
};

@Module({
  imports: [TypeOrmModule.forRoot(cfg)],
})
export class AppModule {}

每个DB_* 变量都匹配Heroku 的Database Credentials 中的对应值

我认为问题出在TypeORM 的某个地方,因为在我的其他应用程序中使用相同的.env 文件值连接到同一个数据库(用不同的编程语言编写)

对可能出现的问题有任何想法吗?

【问题讨论】:

    标签: postgresql nestjs typeorm


    【解决方案1】:

    我遇到了同样的错误,看起来和你一样的开发环境。

    就我而言,我解决了这个Heloku Postgres Connecting in Node.js的错误

    我选择了另一种方法来省略链接所述的 ssl 配置。

    在项目路径的控制台上,键入以下命令。

    heroku 配置:设置 PGSSLMODE=no-verify

    上面的命令与此相同。

    【讨论】:

      【解决方案2】:

      为了解决这个问题,我必须在我的 cfg 对象中添加这些行:

      ssl: true,
      extra: {
        ssl: {
          rejectUnauthorized: false,
        },
      },
      

      使用ssl: true 选项,我们将不得不使用我们还没有的 SSL 证书。

      理想的解决方案是获得一个新的 SSL 证书,但对于开发来说这应该足够了。

      【讨论】:

        猜你喜欢
        • 2022-08-03
        • 2020-10-20
        • 2020-11-13
        • 2021-06-27
        • 2020-07-21
        • 2021-10-19
        • 2022-01-07
        • 2021-05-26
        • 2019-03-05
        相关资源
        最近更新 更多