Изменить пользователя базы данных 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