#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, что создает проблему. Чтобы избежать того, чтобы два экземпляра сражались за один и тот же порт, можно сделать две вещи.
- Остановить экземпляр локального postgres
- В пути postgres контейнера docker откройте postgresql.conf и измените порт по умолчанию.