Используйте пользователя postgres операционной системы для создания вашей базы данных — если вы не настроили роль базы данных с необходимыми привилегиями, соответствующими пользователю вашей операционной системы с таким же именем (h9uest в вашем случае):
sudo -u postgres -i
Как рекомендуется здесь или здесь.
Тогда попробуйте еще раз. Напечатайте exit когда закончите с работой как системный пользователь postgres.
Или выполните одну команду createuser как postgres с sudo, как продемонстрировано drees в другом ответе.
Смысл заключается в том, чтобы использовать пользователя операционной системы, совпадающего с ролью базы данных с тем же именем, для предоставления доступа через ident аутентификацию. postgres — это пользователь операционной системы по умолчанию, который инициализировал кластер базы данных. Руководство:
Для начальной загрузки системы базы данных, недавно инициализированная система всегда содержит одну предопределенную роль. Эта роль всегда является «суперпользователем», и по умолчанию (если она не изменена при запуске
initdb) она будет иметь то же имя, что и пользователь операционной системы, который инициализировал кластер базы данных. Обычно эта роль будет называтьсяpostgres. Чтобы создать больше ролей, сначала необходимо подключиться к этой начальной роли.
Я слышал о странных установках с нестандартными именами пользователей или о том, где пользователь операционной системы не существует. Вам нужно будет адаптировать свою стратегию там.
Читайте о ролях базы данных и аутентификации клиента в руководстве.
Использовать пользователь операционной системы postgres для создания вашей базы данных — до тех пор, пока вы не настроили база данных роль с необходимыми привилегиями, которая соответствует одноименному пользователю вашей операционной системы (h9uest в твоем случае):
sudo -u postgres -i
Как рекомендовано здесь or здесь.
Затем повторите попытку. Тип exit когда закончите работу в качестве системного пользователя postgres.
Or выполнить одну команду createuser as postgres с sudo, Как продемонстрировано Дрисом в другом ответе.
Суть в том, чтобы использовать пользователя операционной системы, совпадающего с одноименной ролью базы данных, для предоставления доступа через ident идентификация. postgres — это пользователь операционной системы по умолчанию, который инициализировал кластер базы данных. Руководство:
Для начальной загрузки системы базы данных только что инициализированная система всегда содержит одну предопределенную роль. Эта роль всегда «суперпользователь», и по умолчанию (если не изменена при запуске
initdb) он будет иметь то же имя, что и пользователь операционной системы, который инициализировал кластер базы данных. Обычно эта роль будет называтьсяpostgres. Чтобы создать больше ролей, вам сначала нужно подключиться в качестве этой начальной роли.
Я слышал о странных установках с нестандартными именами пользователей или о том, что пользователь операционной системы не существует. Вам нужно будет адаптировать свою стратегию там.
Узнайте больше о роли базы данных и аутентификация клиента в руководстве.
ВНИМАНИЕ ! ! ! Если мы работаем от root пользователя, то мы не сможем подключиться к СУБД PostgreSQL. Мы получим ошибку вида.
psql: ошибка: подключиться к серверу через сокет "/var/run/postgresql/.s.PGSQL.5432" не удалось: ВАЖНО: роль "root" не существует

Нам нужно изменить пользователя в терминале Debian. Меняем root на кого? После установки PostgreSQL в систему, вместе с ней устанавливается и новый пользователь. Его зовут postgres. По умолчанию он не имеет пароля для входа.
Команда смены пользователя root на postgres в Debian:
su - postgres
Обратите внимание на терминальную оболочку. В ней изменилась запись пользователя:

Теперь мы сможем работать с утилитой psql. Подключаемся к СУБД при помощи утилиты:
psql
Нам возвращаются версии ПО.

Обратите внимание на самую низкую запись:
postgres=#
Она говорит о том, что теперь мы находимся в самом интерфейсе СУБД PostgreSQL. Ещё она говорит о том, что мы сразу подключились к базе данных, которая тоже называется postgres. Есть пользователь postgres, а есть база данных postgres. Оба они устанавливаются по умолчанию. Не путайте! С этого момент мы можем начать вводить команды.
Во внутреннем интерфейсе вводим мета-команду:
du
или
dg
Вы получите список доступных пользователей в системе PostgreSQL. Вам будут известны их атрибуты ролей и список групп ролей, членами которых они являются.

В нашем случае есть только один пользователь. Это тот самый postgres, от имени которого мы подключились к СУБД.
Справка
Метакоманды — это всё, что вводится в psql не взятое в кавычки и начинающееся с обратной косой черты, является метакомандой psql и обрабатывается самим psql. Эти команды делают psql полезным для задач администрирования и разработки скриптов.
Формат команды psql следующий: обратная косая черта, сразу за ней команда, затем аргументы. Аргументы отделяются от команды и друг от друга любым количеством пробелов.
Чтобы выйти нужно использовать клавишу с буквой Q.
Информационные ссылки
Список команд программы PSQL — https://postgrespro.ru/docs/postgresql/14/app-psql
Официальный сайт PostgreSQL — https://www.postgresql.org
Графический веб-интерфейс для управления СУБД PostgreSQL — https://www.pgadmin.org
Я настраиваю свой PostgreSQL 9.1. Я ничего не могу сделать с PostgreSQL: не createdbмогу, не могу createuser; все операции возвращают сообщение об ошибке
Fatal: role h9uest does not exist
h9uestэто имя моей учетной записи, и я sudo apt-get installPostgreSQL 9.1 под этой учетной записью.
Подобная ошибка сохраняется для rootучетной записи.
Ответы:
Используйте пользователя операционной системы postgres для создания вашей базы данных — если вы не настроили роль базы данных с необходимыми привилегиями, соответствующими пользователю вашей операционной системы с тем же именем ( h9uestв вашем случае):
sudo -u postgres -i
Как рекомендуется здесь или здесь .
Тогда попробуйте еще раз. Введите, exitкогда закончите с работой в качестве системного пользователя postgres.
Или выполнить одну команду , createuserкак postgresс sudo, как продемонстрировано Дреес в другом ответе.
Смысл в том, чтобы использовать пользователя операционной системы, совпадающего с ролью базы данных с тем же именем, для предоставления доступа через identаутентификацию . postgresпользователь операционной системы по умолчанию, инициализировавший кластер базы данных. Руководство:
Для начальной загрузки системы базы данных, недавно инициализированная система всегда содержит одну предопределенную роль. Эта роль всегда является «суперпользователем», и по умолчанию (если она не изменялась при запуске
initdb) она будет иметь то же имя, что и пользователь операционной системы, который инициализировал кластер базы данных. Обычно эта роль будет названаpostgres. Чтобы создать больше ролей, сначала необходимо подключиться к этой начальной роли.
Я слышал о странных настройках с нестандартными именами пользователей или о том, где пользователь операционной системы не существует. Вам нужно будет адаптировать свою стратегию там.
Читайте о ролях базы данных и аутентификации клиента в руководстве.
После попытки решения многих других людей, но безуспешно, этот ответ, наконец, помог мне.
https://stackoverflow.com/a/16974197/2433309
Короче бегом
sudo -u postgres createuser owning_user
создает роль с именем owning_user (в данном случае h9uest). После этого вы можете запускать rake db:createиз терминала под любым именем учетной записи, которое вы настроили, не входя в среду Postgres.
sudo su - postgres
psql template1
создание роли в pgsql с привилегией «superuser»
CREATE ROLE username superuser;
eg. CREATE ROLE demo superuser;
Затем создайте пользователя
CREATE USER username;
eg. CREATE USER demo;
Назначить привилегию пользователю
GRANT ROOT TO username;
А затем включите вход в систему этого пользователя, чтобы вы могли запустить, например psql template1, из обычного $терминала:
ALTER ROLE username WITH LOGIN;
Установка postgres с использованием apt-getне создает роли пользователя или базы данных.
Чтобы создать роль суперпользователя и базу данных для вашей личной учетной записи пользователя:
sudo -u postgres createuser -s $(whoami); createdb $(whoami)
Это работает для меня:
psql -h localhost -U postgres
Метод работы,
vi /etc/postgresql/9.3/main/pg_hba.conflocal all postgres peer
здесь изменить пэр в доверие-
запустить снова,
sudo service postgresql restart -
теперь попробуй,
psql -U postgres
Для версии Postgres 9.5 используйте следующую команду:
psql -h localhost -U postgres
Надеюсь, это поможет.
psql postgres
postgres=# CREATE ROLE username superuser;
postgres=# ALTER ROLE username WITH LOGIN;
В приглашении локального пользователя, а не в приглашении root, введите
sudo -u postgres createuser <local username>
Затем введите пароль для локального пользователя.
Затем введите предыдущую команду, которая сгенерировала «роль« имя пользователя »не существует».
Вышеуказанные шаги решили проблему для меня. Если нет, отправьте сообщения терминала для вышеуказанных шагов.
Создание кластера БД вручную решило проблему в моем случае.
По какой-то причине, когда я установил postgres, «исходная БД» не была создана. Выполнение initdbсделало трюк для меня.
Это решение представлено в PostgreSQL Wiki — Первые шаги :
initdb
Обычно установка postgres на вашу ОС создает «начальную БД» и запускает демон сервера postgres. Если нет, то вам нужно запустить initdb
Для пользователей Windows :psql -U postgres
Вы должны увидеть интерфейс командной строки для PostgreSQL: postgres=#
Выполните эти шаги, и это будет работать для вас:
- запустить
msfconsole - введите db_console
- Вам будет показана некоторая информация. Вы выбрали информацию, которая скажет вам сделать:
db_connect user:pass@host:port.../databaseизвините, я ее не помню, но вот так она заменяет пользователя и пароль, а также хост и базу данных информацией, включеннойdatabase.ymlв положение. :/usr/share/metasploit-framework/config - ты увидишь. восстановление кеша модели в фоновом режиме.
- Наберите apt-get update && apt-get upgrade после обновления, перезапустите терминал и пообедайте с msfconsole, и это работает, вы можете проверить, набрав,
msfconsole: msf>db_statusвы увидите, что он подключен.
сбросить и восстановить с --no-owner --no-privilegesфлагами
например
сбросить — pg_dump --no-owner --no-privileges --format=c --dbname=postgres://userpass:username@postgres:5432/schemaname > /tmp/full.dump
восстановить — pg_restore --no-owner --no-privileges --format=c --dbname=postgres://userpass:username@postgres:5432/schemaname /tmp/full.dump
я настраиваю свой PostgreSQL 9.1. Я ничего не могу сделать с PostgreSQL: не могу createdb, не может createuser; все операции возвращают сообщение об ошибке
Fatal: role h9uest does not exist
h9uest это имя моей учетной записи, и я sudo apt-get install в PostgreSQL 9.1 под этой учетной записью.
Аналогичная ошибка сохраняется для
11 ответов
использовать пользователь операционной системы postgres для создания базы данных-до тех пор, пока вы не настроили база данных роль с необходимыми привилегиями, которая соответствует пользователю вашей операционной системы с тем же именем (h9uest в вашем случае):
sudo -u postgres -i
как было рекомендовано здесь или здесь.
затем повторите попытку. Тип exit когда сделано с работать как потребитель системы postgres.
или выполнить одну команду createuser as postgres С sudo, как продемонстрировано drees в другой ответ.
дело в том, чтобы использовать пользователя операционной системы, соответствующего роли базы данных с тем же именем, чтобы получить доступ через ident проверка подлинности. postgres — пользователь операционной системы по умолчанию, инициализировавший кластер базы данных. инструкции:
для загрузки системы базы данных, недавно инициализированный
система всегда содержит одну предопределенную роль. Эта роль всегда
«суперпользователь» и по умолчанию (если не изменено при запускеinitdb) это
будет иметь то же имя, что и инициализированный пользователь операционной системы
кластер баз данных. Обычно, эта роль будет называтьсяpostgres.
Чтобы создать больше ролей, вы сначала должны подключиться как это
первоначальная роль.
я слышал о нечетных настройках с нестандартными именами пользователей или где пользователь операционной системы не существует. Там тебе придется адаптировать свою стратегию.
читать про роли базы данных и проверка подлинности клиента в руководстве.
598
автор: Erwin Brandstetter
после попытки решения многих других народов, и безуспешно, этот ответ, наконец, помог мне.
https://stackoverflow.com/a/16974197/2433309
короче, работает
sudo -u postgres createuser owning_user
создает роль с именем owning_user (в данном случае h9uest). После этого вы можете запустить rake db:create из терминала под любым именем учетной записи, которое вы настроили без необходимости входить в среду postgres.
sudo su - postgres
psql template1
создание роли на pgsql с привилегией «суперпользователя»
CREATE ROLE username superuser;
eg. CREATE ROLE demo superuser;
затем создайте пользователя
CREATE USER username;
eg. CREATE USER demo;
назначение прав для пользователей
GRANT ROOT TO username;
а затем включите логин этого пользователя, чтобы вы могли запустить, например:psql template1, от нормальных $ терминала:
ALTER ROLE username WITH LOGIN;
102
автор: Mohammed Saleem
установка postgres с помощью apt-get не создает роль пользователя или базу данных.
чтобы создать роль суперпользователя и базу данных для вашей личной учетной записи пользователя:
sudo -u postgres createuser -s $(whoami); createdb $(whoami)
это работает для меня:
psql -h localhost -U postgres
53
автор: mateusz.szymborski
метод работы,
vi /etc/postgresql/9.3/main/pg_hba.conf-
local all postgres peer
вот перемена peer to доверие -
перезагрузка
sudo service postgresql restart -
теперь попробуйте
psql -U postgres
8
автор: Mohideen ibn Mohammed
в приглашении локального пользователя, а не корневого, введите
sudo -u postgres createuser <local username>
введите пароль для локального пользователя.
затем введите предыдущую команду, которая сгенерировала «роль» имя пользователя » не существует.»
вышеуказанные шаги решили проблему для меня.
Если нет, отправьте терминальные сообщения для вышеуказанных шагов.
выполните следующие действия, и он будет работать для вас :
- run
msfconsole - db_console типа
- некоторая информация будет показана вам выбрал информацию, которая скажет вам сделать:
db_connect user:pass@host:port.../databaseизвините, я не помню, но это похоже на это, а затем замените пользователя и пароль, хост и базу данных информацией, включенной вdatabase.ymlв закладки:/usr/share/metasploit-framework/config - вы увидите. перестроение модели кэш фон.
- введите apt-get update & & apt-get upgrade после обновления перезапустите терминал и обед msfconsole, и он работает, вы можете проверить это, введя
msfconsole: msf>db_statusвы увидите, что это связано.
вручную инициализировать стартовый DB решил его, в моем случае.
выполнения initdb сделал трюк для меня.
по какой-то причине, когда я установил postgres, «начальная БД» не была создана.
чтобы решить проблему, это решение предусмотрено для Вики postgreSQL-первые шаги.
initdb, указав
обычно установка postgres на ваш ОС создает «начальную БД» и запускает демон сервера postgres. Если нет, то вам нужно будет запустить initdb, указав
удаление всего и сохранение Postgres.app:
brew cask uninstall postgres
brew uninstall postgres
brew cask install postgres
rm -rf /Applications/Postgres93.app/
# shutdown any postgres instance
# open postgres.app -> "Initialize"
Я хотел PostgreSQL 9.6
Вопрос:
Я недавно установил последнюю версию Ubuntu, и я еще не привык к этому. У меня было несколько проблем с подключением postgresql к pgadmin3.
Я попытался следовать нескольким учебникам, чтобы создать сервер localhost, который я могу использовать в pgadmin3. Я на самом деле не попал в цель, и мне кажется, что я усугубил ситуацию, установив, удалив, установив, удалив, попробовав ответы, которые нашел… На данный момент я не уверен, что мой postgres чистый. Вполне возможно, что у меня установлено два postgres, еще раз, я не уверен. Я попытался удалить его, но у меня была ошибка, которая в основном говорила, что postgres не в sudo.
Дело в том, что теперь у меня есть эта ошибка при запуске psql в консоли:
$psql
psql: FATAL: role "user" does not exist
Я не могу найти pg_hba.conf и в этот момент я слишком боюсь ухудшить положение, пытаясь следовать любым другим постам.
Как я мог сделать эту работу?
Лучший ответ:
Как указано в комментариях, ваш 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 полезным для перечисления существующих баз данных.
Ответ №1
sudo -u postgres createuser user
может помочь вам создать нового пользователя со всеми привилегиями postgres
Ответ №2
Ответ №3
В окнах 10 это работает для тонких
pg_restore –format = c –verbose –no-owner –no-privileges –dbname = MYDB –username = postgres –no-password –jobs = 8 F:/MYBK.backup
– имя пользователя = (роль) и –no-пароль необходимы