Postgresql: аутентификация пароля не удалась для пользователя "postgres"
Я установил 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"
Ответы
Ответ 1
Если я правильно помню, пользователь 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, и он тоже будет счастлив.: -)
Ответ 2
Ответ персонала верен, но если вы хотите продолжить автоматизацию, выполните:
$ sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"
Готово! Вы сохранили User = postgres и password = postgres.
Если у вас нет пароля для пользователя postgres ubuntu do:
$ sudo passwd postgres
Ответ 3
Это разочаровывает, большинство из приведенных выше ответов верны, но в них не упоминается, что вы должны перезапустить службу базы данных, прежде чем изменения в файле pg_hba.conf вступят в силу.
поэтому, если вы внесете изменения, как указано выше:
local all postgres ident
затем перезапустите как root (в centos это что-то вроде перезапуска службы service postgresql-9.2)
Теперь вы должны иметь доступ к БД как пользователь postgres
$psql
psql (9.2.4)
Type "help" for help.
postgres=#
Надеюсь, что это добавляет информацию для новых пользователей Postgres
Ответ 4
Отредактируйте файл 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 на значения по умолчанию.
Ответ 5
Если вы пытаетесь войти в postgres shell как пользователь postgres, вы можете использовать следующие команды.
переключиться на пользователя postgres
# su - postgres
Войти в psql
# psql
Надеюсь, что поможет
Ответ 6
Для тех, кто использует его впервые и не имеет никакой информации о том, какой пароль используется, они могут выполнить следующие действия (при условии, что вы используете Ubuntu):
Откройте файл pg_hba.conf в /etc/postgresql/9.x/main
sudo vi pg_hba.conf
2. отредактируйте нижнюю строку
local all postgres peer
в
local all postgres trust
Перезагрузите сервер
sudo service postgresql restart
Наконец, вы можете войти без пароля, как показано на рисунке![Finally you can login without need of a password as shown in the figure]()
Ссылка здесь для получения дополнительной информации
Ответ 7
Попробуйте не использовать параметр -W и оставить пароль пустым. Иногда пользователь создается без пароля.
Если это не работает reset пароль. Существует несколько способов сделать это, но это работает во многих системах:
$ su root
$ su postgres
$ psql -h localhost
> ALTER USER postgres with password 'YourNewPassword';
Ответ 8
Как правило: ВЫ ДОЛЖНЫ НИКОГДА НЕ УСТАНОВИТЬ ПАРОЛЬ ДЛЯ ПОЛЬЗОВАТЕЛЯ ПОСТРООВ.
Если вам нужен доступ суперпользователя из pgAdmin, создайте еще один суперпользователь. Таким образом, если учетные данные для этого суперпользователя скомпрометированы, вы всегда можете ssh в реальном хосте базы данных и вручную удалите суперпользователя, используя
sudo -u postgres -c "DROP ROLE superuser;"
Ответ 9
Я просто хотел добавить, что вы также должны проверить, истек ли ваш пароль.
См. Ошибка аутентификации паролей Postgres для получения более подробной информации.
Ответ 10
Вот несколько комбинаций, которые я пытался войти:
# 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
Ответ 11
У меня была похожая проблема.
Ubuntu оставили мне войти в консоль с любым паролем суперпользователя.
За исключением случаев, когда я подключился к -h localhost в команде psql line.
Я также заметил, что "localhost: 8080/MyJSPSiteLogIn" - показал: Fatal: ошибка аутентификации с пользователем "user".
pg_hba.conf был в порядке.
Я заметил, что в одном и том же сервисе работали две версии postgres.
Решено - удаление inutil версии.
Ответ 12
Я столкнулся с подобной проблемой.
Получая доступ к любой базе данных, я получал запрос ниже после обновления пароля
"Проверка подлинности с помощью пароля для пользователя" postgres "в PGAdmin
Решение:
- Завершить работу сервера postgres
- Перезапустите pgadmin
- pgadmin попросит пароль.
- Пожалуйста, введите текущий пароль указанного пользователя
Надеюсь, что это решит вашу проблему
![enter image description here]()
Ответ 13
Войдя в оболочку postgres, введите эту команду
postgres=# \password postgres
После ввода этой команды вам будет предложено установить пароль, просто установите пароль и попробуйте.
Ответ 14
Я надеюсь, что это поможет вам не так много времени.
Вы можете изменить пароль Postgres SQL с помощью команды ниже.
Команда
sudo -u postgres psql
А затем вы можете обновить пароль
Команда
Измените пароль пользователя postgres 'YOUR_NEW_PASSWORD';