psql роковой роли не существует

У меня недавно была последняя версия Ubuntu, и я еще не привык к ней. У меня было несколько проблем с подключением postgresql к pgadmin3.

Я попытался следовать нескольким учебникам, чтобы создать сервер localhost, который я могу использовать в pgadmin3. Я на самом деле не попал в цель, и мне кажется, что я усугубил это, установив, удалив, установив, удалив, попробовав ответы, которые нашел... На данный момент я не уверен, что мой postgres чистый. Вполне возможно, что у меня установлено два postgres, еще раз, я не уверен. Я попытался удалить его, но у меня была ошибка, которая в основном говорила, что postgres не в sudo.

Дело в том, что у меня теперь есть эта ошибка при запуске psql в консоли:

$psql
psql: FATAL: role "user" does not exist 

Я не могу найти pg_hba.conf и в этот момент я слишком боюсь сделать вещи еще хуже, пытаясь следовать любым другим постам.

Как я мог сделать эту работу?

4 ответа

Решение

Как указано в комментариях, ваш pg_hba.conf выглядит нормально.

Обычно база данных запускается от имени пользователя postgres (проверьте ps aux | grep postgres чтобы узнать имя пользователя, под которым работает postgres).

Войдите как пользователь, например sudo su - postgres, затем создайте пользователя, соответствующего вашей обычной учетной записи пользователя Ubuntu (createuser username) и, наконец, создайте базу данных с тем же именем и установите владельца (-O) для этого пользователя базы данных, вот так: createdb -O username username).

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

Изменить: по умолчанию psql будет использовать ваше имя пользователя Linux в качестве значения по умолчанию для имени пользователя базы данных и имени базы данных. Вы можете переопределить имя пользователя с помощью -U someotherusernameи подключитесь к другой базе данных, добавив это имя базы данных в командную строку, например psql someotherdbname, Вы также можете найти psql -l полезно для перечисления существующих баз данных.

sudo -u postgres createuser user

может помочь вам создать нового пользователя со всеми привилегиями postgres

Используйте пользователя postgres:

sudo su postgres

а затем используйте PSQL.

Если у вас все еще есть проблемы, проверьте эту ссылку: Ошибка PostgreSQL: Fatal: роль "username" не существует

В Windows 10 это работает нормально

pg_restore --format = c --verbose --no-owner --no-privileges --dbname = MYDB --username = postgres --no-password --jobs = 8 F: /MYBK.backup

--username = (роль) и --no-пароль являются необходимыми

Хотя это немного старый вопрос, если вы столкнулись с этим в Windows, просто удалите Postgres data каталог и повторно инициализировать данные Postgres, запустив initdb /data

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