Изменить пользователя базы данных postgreSQL из пользователя windows в CMD

Я недавно установил 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 Суперпользователь будет работать, но я не знаю, как это сделать.

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

2 ответа

Решение

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

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

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

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

Пытаться createdb -U postgres newdatabase

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

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

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

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

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

Другие вопросы по тегам