Ошибка подключения к базе данных Postgres, но можно подключиться через pgadmin

У меня возникает эта ошибка при попытке подключения к базе данных:

[auth][причина]: ошибка: не удалось выполнить аутентификацию по паролю для пользователя «пользователь»

Но я могу обычно подключиться к pgadmin с теми же учетными данными, поэтому не понимаю, что происходит.

docker-compose.yaml

services:
  postgres:
    image: postgres:latest
    container_name: postgres
    restart: always
    environment:
      POSTGRES_DB: auth_db
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
    ports:
      - "5432:5432"
    volumes:
      - postgres_data:/var/lib/postgresql/data

  pgadmin:
    image: dpage/pgadmin4
    container_name: pgadmin
    restart: always
    environment:
      PGADMIN_DEFAULT_EMAIL: [email protected]
      PGADMIN_DEFAULT_PASSWORD: password
    ports:
      - "5050:80"
    volumes:
      - pgadmin_data:/var/lib/pgadmin
    depends_on:
      - postgres

volumes:
  postgres_data:
  pgadmin_data:

.env

AUTH_DATABASE_HOST = "localhost"
AUTH_DATABASE_PORT=5432
AUTH_DATABASE_NAME = "auth_db"
AUTH_DATABASE_USER = "user"
AUTH_DATABASE_PASSWORD = "password"

бассейн:

import { Pool } from "pg";

export const pool = new Pool ({
    host: process.env.AUTH_DATABASE_HOST,
    port: parseInt(process.env.AUTH_DATABASE_PORT!, 10), // 10 TO MAKE IT A BASE10
    database: process.env.AUTH_DATABASE_NAME,
    user: process.env.AUTH_DATABASE_USER,
    password: process.env.AUTH_DATABASE_PASSWORD,
})

Я попытался подключиться напрямую к базе данных и получил ту же ошибку:

psql -h localhost -U пользователь -d auth_db Пароль для пользователя user: psql: ошибка: подключение к серверу на «localhost» (::1), порт 5432 не удалось: FATAL: не удалось выполнить аутентификацию по паролю для пользователя «user».

Но почему-то с pgadmin работает.

Я использую Windows и рабочий стол Docker с Hyper-V (без wsl)

Не знаю, если это поможет, но это права пользователя:

"пользователь" "auth_db" "public" "пользователи" "INSERT" "пользователь" "auth_db" "public" "пользователи" "SELECT" "пользователь" "auth_db" "общественный" "пользователи" "ОБНОВЛЕНИЕ" "пользователь" "auth_db" "общественный" "пользователи" "УДАЛИТЬ" "пользователь" "auth_db" "общественный" "пользователи" "УСЕЧЕНИЕ" "пользователь" "auth_db" "общественный" "пользователи" "ССЫЛКИ" "пользователь" "auth_db" "public" "пользователи" "TRIGGER"

Вы пытались использовать имя пользователя, отличное от «user»?

Victor Egiazarian 14.07.2024 14:36

Виктор Егиазарян, я попробовал, тоже не помогло, все равно спасибо. Уссема, я не совсем понял решение, которое вы прислали, кстати, я использую окно, прошу прощения, что не упомянул об этом раньше. Спасибо, в любом случае.

zouker 14.07.2024 16:34

Не беспокойся. Вопрос, которым я поделился, вероятно, касается Mac, так что неважно. Не могли бы вы взглянуть на эту возможную причину?

oussema 14.07.2024 20:39

@oussema, это было так, спасибо тебе огромное.

zouker 15.07.2024 02:03

Большой. Я опубликовал ответ с решением.

oussema 15.07.2024 09:09
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
3
6
64
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проверьте, есть ли у вас работающая служба postgres.exe, установив postgres напрямую на ваш компьютер с Windows. Это не позволит вам подключиться к postgres из докер-контейнера.

Посмотрите этот вопрос о stackoverflow

Другие вопросы по теме