Psql фатальная роль не существует
Я недавно установил последнюю версию Ubuntu, и я еще не привык к этому. У меня было несколько проблем с подключением postgresql к pgadmin3.
Я попытался следовать нескольким учебникам, чтобы создать сервер localhost, который я могу использовать в pgadmin3. Я на самом деле не попал в цель, и мне кажется, что я усугубил ситуацию, установив, удалив, установив, удалив, попробовав ответы, которые нашел... На данный момент я не уверен, что мой postgres чистый. Вполне возможно, что у меня установлено два postgres, еще раз, я не уверен. Я попытался удалить его, но у меня была ошибка, которая в основном говорила, что postgres не в sudo.
Дело в том, что теперь у меня есть эта ошибка при запуске psql в консоли:
$psql
psql: FATAL: role "user" does not exist
Я не могу найти pg_hba.conf
и в этот момент я слишком боюсь ухудшить положение, пытаясь следовать любым другим постам.
Как я мог сделать эту работу?
Ответы
Ответ 1
Как указано в комментариях, ваш pg_hba.conf кажется прекрасным.
Обычно база данных запускается как пользователь postgres (проверьте ps aux | grep postgres
, чтобы узнать, что postgres имени пользователя работает под).
Войдите в систему как пользователь, например sudo su - postgres
, затем создайте пользователя, соответствующего вашей обычной учетной записи пользователя Ubuntu (createuser username
), и, наконец, создайте базу данных с таким же именем и установите владельца (-O
) на этот пользователь базы данных, например: createdb -O username username
).
Это должно сделать вызов psql
work, а pgadmin - пока вы начнете его как пользователь по умолчанию, имя пользователя - также должно работать.
Изменить: по умолчанию psql
будет использовать ваше имя пользователя Linux в качестве значения по умолчанию для имени пользователя базы данных и имени базы данных. Вы можете переопределить имя пользователя с помощью -U someotherusername
и подключиться к другой базе данных, добавив это имя БД в командную строку, например psql someotherdbname
. Вы также можете найти psql -l
полезным для перечисления существующих баз данных.
Ответ 2
sudo -u postgres createuser user
может помочь вам создать нового пользователя со всеми привилегиями postgres
Ответ 3
Используйте пользователя postgres:
sudo su postgres
а затем используйте psql.
Если вы все еще сталкиваетесь с проблемами, проверьте эту ссылку: Ошибка PostgreSQL: Fatal: role "username" не существует
Ответ 4
В окнах 10 это работает для тонких
pg_restore --format = c --verbose --no-owner --no-privileges --dbname = MYDB --username = postgres --no-password --jobs = 8 F:/MYBK.backup
- имя пользователя = (роль) и --no-пароль необходимы