Psql: FATAL: аутентификация пароля для пользовательских окон 8

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

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

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

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

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

Edit:

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

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

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

Ответ 1

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

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

Ответ 2

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

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

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

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

Ответ 3

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

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

@sami-kuhmonen был прав, но его подход к решению проблемы не помог мне.