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