인프런 커뮤니티 질문&답변

지말미님의 프로필 이미지

작성한 질문수

따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)

데이터베이스와 애플리케이션 연결

npm run dev시 password 다르다고 나옴

작성

·

447

0

에러 종류: 위와 같은 환경에서 error: password authentication failed for user "postgres" 로 추정되는 에러 발생

아마 서버 연결시 인증 문제로 보입니다.

작동 절차: docker-compose up 입력,

server 파일로 이동, npm run dev 실행. 에러 발생

+1)

POSTGRES_HOST_AUTH_METHOD: trust로 설정하고 서버 새로 만들어도 동일한 에러가 발생하여 무슨 문제일지 잘 모르겠네요.. 도움 주시면 감사하겠습니다.

+2)

아래에 터미널의 전체 에러 코드 남깁니다.

C:\Users\tukim\Desktop\reddit-clone-app\server>npm run dev

> server@1.0.0 dev

> nodemon --exec ts-node ./src/server.ts

[nodemon] 3.0.1

[nodemon] to restart at any time, enter rs

[nodemon] watching path(s): .

[nodemon] watching extensions: ts,json

[nodemon] starting ts-node ./src/server.ts

server running at https://localhost:4000

error: ����� "postgres"�� password ������ �����߽��ϴ�

at Parser.parseErrorMessage (C:\Users\tukim\Desktop\reddit-clone-app\server\node_modules\pg-protocol\src\parser.ts:369:69)

at Parser.handlePacket (C:\Users\tukim\Desktop\reddit-clone-app\server\node_modules\pg-protocol\src\parser.ts:188:21)

at Parser.parse (C:\Users\tukim\Desktop\reddit-clone-app\server\node_modules\pg-protocol\src\parser.ts:103:30)

at Socket.<anonymous> (C:\Users\tukim\Desktop\reddit-clone-app\server\node_modules\pg-protocol\src\index.ts:7:48)

at Socket.emit (node:events:513:28)

at Socket.emit (node:domain:489:12)

at addChunk (node:internal/streams/readable:324:12)

at readableAddChunk (node:internal/streams/readable:297:9)

at Socket.Readable.push (node:internal/streams/readable:234:10)

at TCP.onStreamRead (node:internal/stream_base_commons:190:23) {

length: 107,

severity: 'ġ��������',

code: '28P01',

detail: undefined,

hint: undefined,

position: undefined,

internalPosition: undefined,

internalQuery: undefined,

where: undefined,

schema: undefined,

table: undefined,

column: undefined,

dataType: undefined,

constraint: undefined,

file: 'auth.c',

line: '329',

routine: 'auth_failed'

}

답변 2

0

오래전 질문이긴 하지만, 같은 에러가 발생하여 원인을 찾고 계실 다른 분들을 위해 제 상황 및 해결방법 공유드립니다.

 

제 경우에도 질문자님과 같은 에러가 발생했습니다.

[Nest] 21892 - 2024. 10. 10. 오후 5:29:09 ERROR [ExceptionHandler] ����� "postgres"�� password ������ �����߽��ϴ�

error: ����� "postgres"�� password ������ �����߽��ϴ�

at Parser.parseErrorMessage

 

저는 도커 내에 5432 port를 이미 사용하고 있는, 꺼져 있는 컨테이너가 있었어요.

그래서 port 번호를 변경해서 연결했더니 이상 없이 잘 됐습니다.

host와 docker 컨테이너 간에 맵핑되는 port를 5432:5432 에서 5433:5432로 변경 후에

해당 사항을 nest js app.module.ts에도 적용했습니다.

아래에 코드 첨부합니다.

 

 

docker-compose.yaml

services:
  postgres:
    image: postgres:15
    restart: always
    volumes:
      - ./postgres-data:/var/lib/postgresql/data
    ports:
      - "5433:5432"
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: postgres

App.module.ts

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { TypeOrmModule } from '@nestjs/typeorm';

@Module({
  imports: [
    TypeOrmModule.forRoot({
      type: 'postgres',
      host: 'localhost',
      port: 5433,
      username: 'postgres',
      password: 'postgres',
      database: 'postgres',
      entities: [],
      synchronize: true,
    }),
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

 

만약, 위의 방법으로 안된다면... 행운을 빕니다.

 

ps.

디비 정보를 한번 확인해보세요.
Port나 username 및 password 입력 등 postgres 관련 정보가 잘 적혀있는지 확인해보세요.

0

안녕하세요, 인프런 AI 인턴이에요.

에러 메시지를 보면 “postgres” 사용자의 비밀번호 인증에 실패했다는 내용이 나온 것 같아요. 이 에러는 데이터베이스에 연결할 때 인증 문제가 발생하는 것으로 보입니다.

일반적으로 PostgreSQL에서 기본적으로 사용되는 인증 방식은 “password”인데, 이 에러가 발생한 이유는 아마 설정이 잘못되어 인증에 실패했을 가능성이 높아요.

해결 방법으로는 다음과 같은 것들이 있습니다.
1) 데이터베이스에 사용자 “postgres”의 비밀번호를 확인해주세요. 비밀번호가 정확하지 않을 수 있으니 다시 확인해보세요.
2) 데이터베이스 연결 설정 파일을 확인해보세요. 일반적으로 pg_hba.conf라는 파일에 인증 방식과 관련된 설정이 들어있어요. 이 파일에서 “password”로 설정되어 있는지 확인해보세요.
3) Docker 컨테이너 내부에서 실행 중인 PostgreSQL 서버와 호스트 시스템 간의 네트워크 설정이 잘못되어 있을 수도 있습니다. 네트워크 설정도 함께 확인해보세요.

위의 방법들을 시도해보시고 문제가 해결되지 않는다면 더 상세한 정보가 필요할 것 같아요. 더 자세한 에러 메시지나 설정 파일의 내용 등을 공유해주시면 더 정확한 도움을 드릴 수 있을 거예요.

지말미님의 프로필 이미지
지말미
질문자

1) 비밀번호 파일은 업로드된 이미지에서 보이다싶이 password로 동일합니다.

2) pg_hba.conf 파일에서 "password"로 설정되어 있는지 확인해보는게 무엇을 의미하나요? 해당 파일에서 'METHOD'를 trust에서 md5로 변경하거나, password로 변경해도 동일한 문제가 발생했습니다.

3) 네트워크 설정에 특별한 문제점은 발견되지 않았습니다. 혹시 추천하는 네트워크 설정 확인법이 있다면 알려주세요.