Подтвердить что ты не робот

Pgadmin дает мне ошибку: пароль не указан

Я установил postgresql 9.2 в linux (kubuntu) и последнюю версию pgadmin3, но когда я их подключу, у меня есть эта ошибка:

Произошла ошибка: Ошибка подключения к серверу: fe_sendauth: пароль не указан

Что я могу сделать?

Я также настроил tomcat для своего веб-приложения в java. Фактически, postgresql работал перед тем, как попробовать мое приложение.

4b9b3361

Ответ 1

Требуется ли пароль, зависит от ваших настроек в pg_hba.conf. И есть разные способы подключения - разные настройки в pg_hba.conf могут применяться.

Я цитирую помощь, поставляемую с pgAdmin 3 для поля "Хост" в настройках соединения ("сервер"):

Хост - это IP-адрес компьютера, с которым нужно связаться, или полное доменное имя. В системах на основе Unix поле адреса можно оставить пустым для использования стандартного доменного сокета PostgreSQL Unix на локальном компьютере или указать альтернативный путь, содержащий сокет PostgreSQL. Если путь введен, он должен начинаться с "/". Номер порта также может быть указан.

Если вы подключаетесь через сокет Unix, применяются правила "local". Тогда как при подключении через TCP/IP применяются правила "host" (или "hostssl").

Если у вас есть такая строка вверху вашего файла pg_hba.conf:

local    all     all     peer

или же:

local    all     all     ident

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

Ответ 2

Я понимаю, что это вопрос лет, но сегодня я столкнулся с этой проблемой и имею решение, которое использует trust ограниченным, но полезным способом.

Как и во многих магазинах для разработчиков, когда разработчикам нужен пароль postgres QA, они просто кричат ​​об этом, сообщают об этом, пишут его, пишут на своих лбах и т.д. И мне нравится: "Это действительно плохо. нужно выяснить способ использования PKI здесь". Мы также используем pgAdmin3.

Сначала добавьте такую ​​строку в свой pg_hba.conf, где dev представляет пользователя для разработчиков в вашем магазине:

host all dev 127.0.0.1/32 trust

Отбросьте открытый ключ разработчиков в папку authorized_keys на сервере базы данных. Теперь имейте ssh на сервере с флагом -L с командой, подобной следующей:

ssh -i ~/.ssh/id_rsa -L5432:127.0.0.1:5432 -vvv 101.102.103.104

Это позволяет использовать порт postgres, как если бы он был localhost. Конечно, замените ключ, сервер и убедитесь, что он локально открыт для открытого порта (если у вас есть локальный постгерс, он, вероятно, связан с 5432). Я использую довольно подробный флаг, поэтому я могу легко устранить любые проблемы ssh.

Откройте другой терминал и выполните следующую команду:

psql -h 127.0.0.1 -U dev -p 5432

У вас должен быть доступ к базе данных, и вам никогда не будет предложено ввести пароль, который, как мне кажется, велик, потому что в противном случае разработчики просто откажутся от пароля, не обращая внимания на безопасность, передав его, как конфеты Хэллоуина.

На данный момент PgAdmin3 по-прежнему будет запрашивать пароль, хотя, как обычный, как день, вам он не нужен. Но другие графические интерфейсы postgres не будут. Попробуй Постико. Он работает в бета-версии, но отлично работает.

Я надеюсь, что этот ответ поможет кому-то вроде меня, который предпочел бы использовать PKI для postgres auth, а не делиться паролями волей-неволей.

Ответ 3

Встретил эту проблему недавно.

Если вы используете PostgreSQL на локальном компьютере, и psql работает без необходимости входа в систему, попробуйте в меню pgadmin3 File - Add Server - Properties tab, заполните поле Name для этого подключения, оставьте поля Host Поле Password пустыми и нажмите кнопку ok.

из документов pgadmin

В системах на основе Unix поле адреса можно оставить пустым для использования стандартного доменного сокета PostgreSQL Unix на локальном компьютере или указать альтернативный путь, содержащий сокет PostgreSQL. Если путь введен, он должен начинаться с "/".

Работал над тестированием Debian (pgadmin3 1.22, PostgreSQL 11), не касаясь pg_hba.conf.