psql: неустранимо: ошибка аутентификации пароля для пользователя windows 8

Я установил postgresql на windows, и во время установки он просит сделать пользователя для учетной записи.Это сделало нового пользователя windows на моем компьютере под названием postgres, я также создал для него пароль.

Теперь я хочу запустить psql в командной строке windows, он запрашивает пароль (без упоминания пользователя) и всегда возвращает мне ошибку: psql: FATAL: password authentication failed for user "Ash". хотя я много раз ставил пароль для своих учетных записей.

используя pgadmin я изменил пользователя "postgres" на "Эш", но мне еще предстоит переделать пароль. Я последовал за этими шагами:--8-->Я забыл пароль, который я ввел во время установки postgres (Я скорее типы host all 127.0.0.1/32 trust потому что я на windows), но при запуске psql снова, чтобы я мог изменить пароль, я получаю ошибку:psql FATAL:could not load pg_hba.conf. все вместе.

почему он не может загрузить? Все, что я сделал, это добавил дополнительный вариант аутентификации.

кроме того, пользователь windows отделен от пользователя postresql или они одинаковы(в зависимости от друг друга)?

Edit:

как вы можете видеть, это не дало мне возможность выбрать, должна ли Аиша быть суперпользователем или нет. или другие варианты, если на то пошло.

Я также использовал pgadmin||| для создания нового пользователя, но появляется та же ошибка: enter image description hereenter image description here

пользователь не существует, так почему он это делает?

3 ответов


createuser - это утилита командной строки. Использовать CREATE USER username WITH PASSWORD 'fred'; или аналогичный на уровне SQL в psql. Обратите внимание на точку с запятой.

то, что вы делаете на скриншоте, начинает писать команду SQL, начинающуюся с createuser, но никогда не отправляет его на сервер для запуска, потому что нет точки с запятой Терминатора. Поэтому вы никогда не получите ошибку, которая скажет вам, что это не имеет смысла делать.


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

таким образом, вы должны сначала получить доступ к серверу с пользователем postgres, а затем создать пользователя для себя. Не меняйте имя пользователя внутри сервера, или запущенный пользователь сервера! Просто создайте новое имя пользователя и предоставьте ему необходимые разрешения.

можно использовать psql -U postgres подключиться к серверу и он будет запрашивать пароль.

Проверьте разрешения для pg_hba.conf, пользователь postgres должен иметь разрешения для него. Если вы только отредактировали его как администратор, это должно быть нормально, но если вы взяли разрешения или что-то еще, это может испортить его.


У меня была точно такая же проблема и решить ее;

createuser --createdb -U postgres --login -P 'your_new_user'

@сами-кухмонен был прав, но его подход к решению проблемы не работают для меня.