Невозможно подключиться к docker postgres с помощью пароля

#postgresql #docker

#postgresql #докер

Вопрос:

Я пытаюсь подключиться к локально запущенному postgres в docker. Я запускаю базовую инициализацию учебника:

 docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres
 

когда я пытаюсь: pgcli -h localhost -U postgres postgres я получаю отказ в вводе пароля. Я также пробовал использовать pguser. Я также попытался установить имя пользователя с тем же результатом.

Когда я пытаюсь использовать общее приложение базы данных DBeaver, пароль с тем же результатом отклонен. Я попытался зайти в запущенный контейнер и также сбросить пароль: docker exec -it <hash> bash а затем вручную снова установить пароль на что-то простое.

Комментарии:

1. Вы должны перенаправить порт с локального компьютера в контейнер, а затем подключиться к перенаправленному порту. Если вы используете порт по умолчанию, вам также потребуется остановить локальный сервер postgres, только если он установлен, в противном случае нет необходимости.

2. «пароль отклонен» — это не та формулировка, которую будет использовать PostgreSQL. Пожалуйста, укажите точное сообщение об ошибке.

Ответ №1:

Я смутно помню, что postgresql: а) имеет другой пароль для учетной записи postgresql, чем тот, который вы должны установить для учетной записи пользователя Linux, и б) необходимость активировать вход в систему с именем пользователя и паролем где-нибудь в конфигурации

Надеюсь, это поможет, просто что-то с моей головы

Комментарии:

1. не повезло, как я пробовал docker run --name some-postgres -e POSTGRES_USER=someuser -e POSTGRES_PASSWORD=mysecretpassword -d postgres , и тот же результат с pgcli -h localhost -p 5432 -U someuser postgres

Ответ №2:

Я получал аналогичную ошибку с портом 5432 (по умолчанию), и у меня тоже была локальная установка postgres, что создает проблему. Чтобы избежать того, чтобы два экземпляра сражались за один и тот же порт, можно сделать две вещи.

  1. Остановить экземпляр локального postgres
  2. В пути postgres контейнера docker откройте postgresql.conf и измените порт по умолчанию.