2

Я недавно установил PostgreSQL на Windows 7, каждый раз, когда я пытаюсь использовать CMD для выполнения команды SQL, я получаю эту ошибку

createdb: could not connect to database template1: FATAL: password authentication failed for user "R-61"

Где R-61 - мое имя пользователя Windows.

Вот как я использую CMD с pgSQL

  • сначала я перехожу в папку pgSQL bin $ cd C:\xampp\pgsql\9.1\bin
  • я пытаюсь создать базу данных $ createdb NEWDATABASE
  • я получаю приглашение ввести пароль. это где я запутался, так как я не знаю, какой пароль. Я попробовал свой пароль пользователя окна, пароль для суперпользователя postgres , похоже, ни один из них не работает. это сообщение об ошибке, которое я получаю createdb: could not connect to database template1: FATAL: password authentication failed for user "R-61"

    Кто-нибудь знает решение этой проблемы? Я думаю, что изменение пользовательской формы R-61 на postgres superuser будет работать, но я не знаю, как это сделать.

Ваша помощь очень нужна.

2 ответа2

2

createdb - это команда, которая должна подключаться к серверу точно так же, как любая другая клиентская команда (даже если она запускается на самом сервере), и поэтому для подключения требуется пользователь базы данных.

Если вы не укажете пользователя базы данных с параметром -U username , вам понадобится имя пользователя вашей ОС, отсюда и ссылка на "R-61" в сообщении об ошибке. Запрашиваемый пароль - это пароль несуществующего пользователя базы данных R-61 .

Есть также другие опции, такие как хост по умолчанию localhost и порт по 5432 , см. Его страницу руководства для всех них.

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

Попробуй createdb -U postgres newdatabase

Он должен запросить пароль, и это будет пароль пользователя базы данных postgres .

Если он не запрашивает пароль, это означает, что политика безопасности в pg_hba.conf настроена таким образом. Если пароль утерян (или пароль не был установлен, как в случае некоторых автоматических установок, особенно в Unix), pg_hba.conf необходимо изменить, а сервис перезагрузить, чтобы авторизовать соединения без пароля, по крайней мере, временно, чтобы установить новый пароль.

0

Я не имею прямого опыта с этим, но я изучил это, и я думаю, что это то, что вы ищете. Я обнаружил похожую проблему, которая предполагает, что PostgresSQL в Windows запрашивает пароль во время установки. Этот пароль, вероятно, является паролем для учетной записи администратора PostgresSQL. Учетная запись администратора должна работать для подключения к этой базе данных и настройки разрешений для нее.

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

Обсуждение, в котором я нашел это: Re: Пароль по умолчанию Документация в файле pg_hba.conf: 19.1.Файл pg_hba.conf

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .