Меню

Psql ошибка важно роль user не существует

Используйте пользователя 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" не существует

PostgreSQL - роль root не существует

PostgreSQL — роль root не существует

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

Команда смены пользователя root на postgres в Debian:

su - postgres

Обратите внимание на терминальную оболочку. В ней изменилась запись пользователя:

Сменили пользователя root на postgres в Debian

Сменили пользователя root на postgres в Debian

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

psql

Нам возвращаются версии ПО.

Вызвали psql от имени postgres в Debian

Вызвали psql от имени postgres в Debian

Обратите внимание на самую низкую запись:

postgres=#

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

Во внутреннем интерфейсе вводим мета-команду:

du
или
dg

Вы получите список доступных пользователей в системе PostgreSQL. Вам будут известны их атрибуты ролей и список групп ролей, членами которых они являются.

Вызвали команду du в интерфейсе СУБД PostgreSQL в Debian

Вызвали команду du в интерфейсе СУБД PostgreSQL в Debian

В нашем случае есть только один пользователь. Это тот самый 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





Метод работы,

  1. vi /etc/postgresql/9.3/main/pg_hba.conf
  2. local all postgres peer
    здесь изменить пэр в доверие
  3. запустить снова, sudo service postgresql restart

  4. теперь попробуй, 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=#


Выполните эти шаги, и это будет работать для вас:

  1. запустить msfconsole
  2. введите db_console
  3. Вам будет показана некоторая информация. Вы выбрали информацию, которая скажет вам сделать: db_connect user:pass@host:port.../databaseизвините, я ее не помню, но вот так она заменяет пользователя и пароль, а также хост и базу данных информацией, включенной database.ymlв положение. :/usr/share/metasploit-framework/config
  4. ты увидишь. восстановление кеша модели в фоновом режиме.
  5. Наберите 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


метод работы,

  1. vi /etc/postgresql/9.3/main/pg_hba.conf
  2. local all postgres peer
    вот перемена peer to доверие
  3. перезагрузка sudo service postgresql restart

  4. теперь попробуйте psql -U postgres

8

автор: Mohideen ibn Mohammed


в приглашении локального пользователя, а не корневого, введите

sudo -u postgres createuser <local username>

введите пароль для локального пользователя.

затем введите предыдущую команду, которая сгенерировала «роль» имя пользователя » не существует.»

вышеуказанные шаги решили проблему для меня.
Если нет, отправьте терминальные сообщения для вышеуказанных шагов.



выполните следующие действия, и он будет работать для вас :

  1. run msfconsole
  2. db_console типа
  3. некоторая информация будет показана вам выбрал информацию, которая скажет вам сделать:db_connect user:pass@host:port.../database извините, я не помню, но это похоже на это, а затем замените пользователя и пароль, хост и базу данных информацией, включенной в database.yml в закладки: /usr/share/metasploit-framework/config
  4. вы увидите. перестроение модели кэш фон.
  5. введите 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-пароль необходимы

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Psql ошибка важно роль root не существует
  • Psql ошибка важно пользователь postgres не прошел проверку подлинности peer