Назад | Перейти на главную страницу

pgsql может подключиться, pgadmin не может

Нам нужна только 1 роль, владеющая 1 базой данных, домен-сокет unix, без пароля

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 >>

Похоже, 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.

Была такая же проблема с psql через подключение к командной строке и pgAdmin, не подключающимся к RDS с AWS. У меня был установлен RDS для публичного доступа. Я убедился, что мои 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 по умолчанию, и я не мог заставить его работать. Не знаю почему, но это в другой день.

Вы должны проверить всю свою pg_hba.conf файл, порядок директив важен. Думаю, вы сохранили в нем строку по умолчанию:

local   all         all                               ident

Если эта строка присутствует перед вашей конкретной строкой о jppstphp, сервер postgresql сначала попытается идентифицировать вас по вашему имени пользователя UNIX, которое, похоже, envol. Это не удастся, потому что вы пытаетесь подключиться как пользователь / роль postgres jppstphp.

Если мое предположение верно, удалив указанную выше строку (и, возможно, аналогичную запись с md5 аутентификация по паролю) или разместив свой jppstphp строка, прежде чем она должна позволить вам подключиться через локальный сокет.

Чтобы подключиться через локальный сокет, оставьте поле хоста пустым, как и вы, - это все, что требуется.