
Нам нужна только 1 роль, владеющая 1 базой данных, Domain-unix Socket, без пароля
postgres@luciol-essai:~$ more /etc/postgresql/8.4/main/pg_hba.conf | grep jppstphp
local essais_php jppstphp trust
postgres@luciol-essai:~$
Успех с psql:
envol@luciol-essai:~$ psql -U jppstphp essais_php
psql (8.4.15)
essais_php=>
Ошибка с pgadmin3:
Это ошибка.
Error connecting to the server: FATAL: authentification Ident ?chou?e pour l'utilisateur << jppstphp >>
решение1
Похоже, что PgAdmin-III получает указание подключиться к localhost
или 127.0.0.1
, поэтому он использует TCP/IP, тогда как psql не получает спецификацию хоста, поэтому он использует сокеты UNIX ( local
).
Оставьте поле имени хоста в pgadmin3 пустым или добавьте другую pg_hba.conf
запись для host essais_php jppstphp 127.0.0.1/32 trust
.
решение2
Вам следует проверить весь pg_hba.conf
файл, порядок директив важен. Я полагаю, вы сохранили в нем строку по умолчанию:
local all all ident
Если эта строка присутствует перед вашей конкретной строкой about jppstphp
, сервер postgresql сначала попытается идентифицировать вас по вашему имени пользователя UNIX, которое, похоже, envol
. Это не удастся, поскольку вы пытаетесь подключиться как postgres user/role jppstphp
.
Если мое предположение верно, то удаление вышеуказанной строки (и, возможно, аналогичной записи с md5
аутентификацией по паролю) или размещение вашей jppstphp
строки перед ней должно позволить вам подключиться через локальный сокет.
Для подключения через локальный сокет достаточно оставить поле хоста пустым, как вы это сделали.
решение3
Была та же проблема с psql через командную строку, подключающимся и pgAdmin не подключающимся к RDS с AWS. Я установил свой RDS как Publicly Accessible. Я убедился, что мой ACL и группы безопасности широко открыты, но проблема все еще осталась, поэтому я сделал следующее:
sudo find . -name *.conf
затем sudo nano ./data/pg_hba.conf
добавил в начало директив в файле pg_hba.conf host all all 0.0.0.0/0 md5
, и pgAdmin автоматически вошел в систему.
Кстати, мой RDS был в моем VPC по умолчанию. У меня был идентичный экземпляр RDS в моем VPC не по умолчанию с идентичными группами безопасности, ACL и настройками групп безопасности моего VPC по умолчанию, и я не мог заставить его работать. Не уверен, почему, но это для другого дня.