【问题标题】:NestJS Docker Postgres connectionNestJS Docker Postgres 连接
【发布时间】:2021-05-21 05:08:46
【问题描述】:

我有一个问题,我无法弄清楚错误是什么。一切正常,第二天服务器停止连接到数据库。创建了一个新的测试项目,错误是可重现的。但是当我使用 Docker 和服务器创建数据库时,一切都已连接。

这给出了一个错误,我不明白什么样的菱形是

[Nest] 9964   - 2021-02-18 2:51:09 PM   [TypeOrmModule] Unable to connect to the database. Retrying (1)... +65ms
error: ������������ "admin" �� ������ �������� ����������� (�� ������)
    at Parser.parseErrorMessage (D:\Programs\Test_DB_Server\test-db\node_modules\pg-protocol\dist\parser.js:278:15)
    at Parser.handlePacket (D:\Programs\Test_DB_Server\test-db\node_modules\pg-protocol\dist\parser.js:126:29)
    at Parser.parse (D:\Programs\Test_DB_Server\test-db\node_modules\pg-protocol\dist\parser.js:39:38)
    at Socket.stream.on (D:\Programs\Test_DB_Server\test-db\node_modules\pg-protocol\dist\index.js:10:42)
    at Socket.emit (events.js:198:13)
    at addChunk (_stream_readable.js:288:12)
    at readableAddChunk (_stream_readable.js:269:11)
    at Socket.Readable.push (_stream_readable.js:224:10)
    at TCP.onStreamRead [as onread] (internal/stream_base_commons.js:94:17)

所以尝试连接

@Module({
  imports: [
    TypeOrmModule.forRoot({
      type: 'postgres',
      port: 5432,
      host: 'localhost',
      username: 'admin',
      password: 'admin',
      database: 'nestjs',
      entities: [],
    })
  ]
})
export class DatabaseModule {
}

码头工人撰写

version: "3"
services:
  postgres:
    container_name: postgres_test
    image: postgres:latest
    ports:
      - "5432:5432"
    env_file:
      - docker.env

  pgadmin:
    links:
      - postgres:postgres
    container_name: pgadmin
    image: adminer
    ports:
      - "8080:8080"
    env_file:
      - docker.env

docker.env

POSTGRES_USER=admin
POSTGRES_PASSWORD=admin
POSTGRES_DB=nestjs

可以通过adminer连接数据库,但是从昨天开始就没有通过TypeOrmModule连接,并且正确显示其他错误(如果密码不正确等)。 尽你所能帮助任何人。

【问题讨论】:

    标签: postgresql docker nestjs


    【解决方案1】:

    您需要创建网络并将它们绑定到同一个网络才能看到对方。之后,您可以使用“postgres”而不是 localhost。

    version: "3"
    services:
      postgres:
        container_name: postgres_test
        image: postgres:latest
        networks:
          - server-net
        ports:
          - "5432:5432"
        env_file:
          - docker.env
    
      pgadmin:
        links:
          - postgres:postgres
        container_name: pgadmin
        image: adminer
        networks:
          - server-net
        ports:
          - "8080:8080"
        env_file:
          - docker.env
    networks:
      server-net:
        driver: bridge
    

    【讨论】:

    • 这对我没有帮助,我可以从管理员连接到数据库。但我无法连接来自 Nestjs 的相同数据,它给出了钻石这个难以理解的错误。甚至 Google 也无济于事
    • 我能找出问题所在,我有一个Postgres服务器,晚上更新windows,当我打开电脑时,服务器打开,我启动了数据库在 docker 中,所有东西都在同一个端口上,混合等等。当我注意到时,我关闭了服务器,一切正常。太可怕了,我被这个折磨了2天。
    猜你喜欢
    • 2021-06-19
    • 1970-01-01
    • 2021-07-21
    • 1970-01-01
    • 2022-01-14
    • 2019-08-02
    • 2023-02-12
    • 2018-07-03
    • 2014-10-21
    相关资源
    最近更新 更多