У меня возникает эта ошибка при попытке подключения к базе данных:
[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"
Мне не удалось воспроизвести проблему. скриншот Мне удалось нормально подключиться к БД. Я предполагаю, что это может быть связано с проблемой с разрешениями тома. Я видел это раньше из-за этого Проблема с монтированием томов между хостом (MacOs BigSur) и виртуальной машиной podman.
Виктор Егиазарян, я попробовал, тоже не помогло, все равно спасибо. Уссема, я не совсем понял решение, которое вы прислали, кстати, я использую окно, прошу прощения, что не упомянул об этом раньше. Спасибо, в любом случае.
Не беспокойся. Вопрос, которым я поделился, вероятно, касается Mac, так что неважно. Не могли бы вы взглянуть на эту возможную причину?
@oussema, это было так, спасибо тебе огромное.
Большой. Я опубликовал ответ с решением.
Проверьте, есть ли у вас работающая служба postgres.exe
, установив postgres напрямую на ваш компьютер с Windows. Это не позволит вам подключиться к postgres из докер-контейнера.
Вы пытались использовать имя пользователя, отличное от «user»?