Я установил PostgreSQL 8.4, Postgres client и Pgadmin 3. Ошибка аутентификации для пользовательских "postgres" для консольного клиента и Pgadmin. Я набрал пользователя как "postgres" и пароль "postgres" , потому что он работал раньше. Но теперь проверка подлинности не удалась. Я делал это до того, как пару раз без этой проблемы. Что мне делать? И что происходит?
psql -U postgres -h localhost -W
Password for user postgres:
psql: FATAL: password authentication failed for user "postgres"
FATAL: password authentication failed for user "postgres"
Если я правильно помню, пользователь postgres
по умолчанию не имеет пароля DB, установленного на Ubuntu. Это означает, что вы можете войти в эту учетную запись только с помощью учетной записи postgres
ОС OS.
Предполагая, что у вас есть root
доступ в поле, которое вы можете сделать:
sudo -u postgres psql
Если это не с ошибкой database "postgres" does not exists
, то вы, скорее всего, не на сервере Ubuntu или Debian:-) В этом случае просто добавьте template1
в команду:
sudo -u postgres psql template1
Если какая-либо из этих команд завершится с ошибкой psql: FATAL: password authentication failed for user "postgres"
, тогда проверьте файл /etc/postgresql/8.4/main/pg_hba.conf
: в качестве первой строки без комментария должна быть строка:
local all postgres ident
Для более новых версий PostgreSQL ident
на самом деле может быть peer
. Это также хорошо.
Внутри оболочки psql
вы можете указать пользователю DB postgres
:
ALTER USER postgres PASSWORD 'newPassword';
Вы можете оставить оболочку psql
, набрав Ctrl D или с помощью команды \q
.
Теперь вы можете дать pgAdmin действительный пароль для суперпользователя DB, и он тоже будет счастлив.: -)
Ответ персонала верен, но если вы хотите продолжить автоматизацию, выполните:
$ sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"
Готово! Вы сохранили User = postgres и password = postgres.
Если у вас нет пароля для пользователя postgres ubuntu do:
$ sudo passwd postgres
Это разочаровывает, большинство из приведенных выше ответов верны, но они не могут упомянуть, что вы должны перезапустить службу базы данных до того, как изменения в файле pg_hba.conf повлияют.
так что если вы сделаете что-то вроде выше
local all postgres ident
затем перезапустите как root (на centos это что-то вроде сервисного сервиса postgresql-9.2 restart) теперь вы должны иметь доступ к db как пользователь postgres
$PSQL psql (9.2.4) Введите "help" для справки.
postgres = #
Надеемся, что это добавит информацию для новых пользователей postgres.
sudo service postgresql restart
sudo systemctl restart postgresql.service
Если вы пытаетесь войти в postgres shell как пользователь postgres, вы можете использовать следующие команды.
переключиться на пользователя postgres
# su - postgres
Войти в psql
# psql
Надеюсь, что поможет
su - postgres
запрашивает пароль на posgresql 9.5 на Ubuntu 16.04
su - postgres
- это команда, которую предлагает официальная документация Fedora, но я тоже получаю запрос пароля. Чтобы обойти это, я следил за этим письмом на форуме postgres, которое использует ту же команду, что и принятый ответ: sudo -u postgres psql
. Не забудьте инициализировать и запустить сервер базы данных.
Отредактируйте файл pg_hba.conf, например. с sudo emacs /etc/postgresql/9.3/main/pg_hba.conf
Измените все методы проверки подлинности на trust
. Измените пароль Unix для пользователя postgres. Перезагрузите сервер. Войдите в систему с помощью psql -h localhost -U postgres
и используйте только что установленный пароль Unix. Если он работает, вы можете повторно установить файл pg_hba.conf на значения по умолчанию.
sudo su - postgres
, затем установите / исправьте / отмените пароль для postgres db (и в оболочке, если необходимо), затем восстановите методы безопасности md5
или ident
И перезапустите снова, чтобы ценности придерживаются. Кстати, на Cent / RedHat 9.4 файл находится по адресу: /var/lib/pgsql/9.4/data/pg_hba.conf
Попробуйте не использовать параметр -W и оставить пароль пустым. Иногда пользователь создается без пароля.
Если это не работает reset пароль. Существует несколько способов сделать это, но это работает во многих системах:
$ su root
$ su postgres
$ psql -h localhost
> ALTER USER postgres with password 'YourNewPassword';
Как правило: ВЫ ДОЛЖНЫ НИКОГДА НЕ УСТАНОВИТЬ ПАРОЛЬ ДЛЯ ПОЛЬЗОВАТЕЛЯ ПОСТРООВ.
Если вам нужен доступ суперпользователя из pgAdmin, создайте еще один суперпользователь. Таким образом, если учетные данные для этого суперпользователя скомпрометированы, вы всегда можете ssh в реальном хосте базы данных и вручную удалите суперпользователя, используя
sudo -u postgres -c "DROP ROLE superuser;"
Вот несколько комбинаций, которые я пытался войти:
# login via user foo
psql -Ufoo -h localhost
sudo -u postgres psql postgres
# user foo login to postgres db
psql -Ufoo -h localhost -d postgres
Я просто хотел добавить, что вы также должны проверить, истек ли ваш пароль.
См. Ошибка аутентификации паролей Postgres для получения более подробной информации.
ALTER
, затем редактирование моего файлаpg_hba.conf
, затем перезапуск postgres .