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

I have been reading this tutorial. There is the below command to login as a user:

# login as user "user"
psql -U user

when I execute the above command, I get an error saying the following:

psql: FATAL:  role "user" does not exist

The only help I saw online was here, the have said the following:

FATAL: role «myusername» does not exist

By default PostgreSQL connects to the PostgreSQL user with the same
name as the current unix user. You have not created a PostgreSQL user
by that name in your database.

Create a suitable user, or specify a different username to connect
with. In the command line tools the -U flag does this.

But I still don’t quite understand why I am getting this error.

halfer's user avatar

halfer

19.8k17 gold badges98 silver badges185 bronze badges

asked Sep 3, 2015 at 10:59

Alexander Solonik's user avatar

Alexander SolonikAlexander Solonik

9,74818 gold badges73 silver badges173 bronze badges

1

You have first to login in a linux shell as the user postgres and than create new postgres user with the command createuser. The system user postgres is created automatically by the Postgres installer.

Execute this code in the console (change your_username with a username of your choice):

sudo -u postgres -i
createuser -l -d -P your_username

Better you create a database with the same name too (this makes the login later easier):

createdb your_username -O your_username

Then you should be able to connect in psql with

psql -h localhost -U your_username

answered Sep 3, 2015 at 13:07

Tom-db's user avatar

Please check to see if the user exists.

dg

If not, you need what is missing in the tutorial and you edit it if necessary.

CREATE USER user WITH PASSWORD '<here you password>';

answered Sep 3, 2015 at 12:45

René's user avatar

RenéRené

813 bronze badges

I’m setting up my PostgreSQL 9.1. I can’t do anything with PostgreSQL: can’t createdb, can’t createuser; all operations return the error message

Fatal: role h9uest does not exist

h9uest is my account name, and I sudo apt-get install PostgreSQL 9.1 under this account.
Similar error persists for the root account.

Erwin Brandstetter's user avatar

asked Aug 12, 2012 at 3:00

h9uest's user avatar

7

Use the operating system user postgres to create your database — as long as you haven’t set up a database role with the necessary privileges that corresponds to your operating system user of the same name (h9uest in your case):

sudo -u postgres -i

As recommended here or here.

Then try again. Type exit when done with operating as system user postgres.

Or execute the single command createuser as postgres with sudo, like demonstrated by
dsrees in another answer.

The point is to use the operating system user matching the database role of the same name to be granted access via ident authentication. postgres is the default operating system user to have initialized the database cluster. The manual:

In order to bootstrap the database system, a freshly initialized
system always contains one predefined role. This role is always a
“superuser”, and by default (unless altered when running initdb) it
will have the same name as the operating system user that initialized
the database cluster. Customarily, this role will be named postgres.
In order to create more roles you first have to connect as this
initial role.

I have heard of odd setups with non-standard user names or where the operating system user does not exist. You’d need to adapt your strategy there.

Read about database roles and client authentication in the manual.

answered Aug 12, 2012 at 4:13

Erwin Brandstetter's user avatar

Erwin BrandstetterErwin Brandstetter

595k144 gold badges1056 silver badges1214 bronze badges

6

After trying many other people’s solutions, and without success, this answer finally helped me.

https://stackoverflow.com/a/16974197/2433309

In short, running

sudo -u postgres createuser owning_user

creates a role with name owning_user (in this case, h9uest). After that you can run rake db:create from the terminal under whatever account name you set up without having to enter into the Postgres environment.

Vaibhav Mule's user avatar

Vaibhav Mule

4,9764 gold badges35 silver badges52 bronze badges

answered Sep 9, 2013 at 23:27

dsrees's user avatar

dsreesdsrees

6,0662 gold badges26 silver badges26 bronze badges

9

sudo su - postgres

psql template1

creating role on pgsql with privilege as «superuser»

CREATE ROLE username superuser;
eg. CREATE ROLE demo superuser;

Then create user

CREATE USER username; 
eg. CREATE USER demo;

Assign privilege to user

GRANT ROOT TO username;

And then enable login that user, so you can run e.g.: psql template1, from normal $ terminal:

ALTER ROLE username WITH LOGIN;

the's user avatar

the

20.8k11 gold badges68 silver badges101 bronze badges

answered May 29, 2014 at 13:35

Mohammed Saleem's user avatar

Mohammed SaleemMohammed Saleem

1,8731 gold badge11 silver badges6 bronze badges

5

This works for me:

psql -h localhost -U postgres

ssbl's user avatar

ssbl

432 silver badges6 bronze badges

answered Aug 12, 2014 at 11:39

mateusz.szymborski's user avatar

4

Installing postgres using apt-get does not create a user role or a database.

To create a superuser role and a database for your personal user account:

sudo -u postgres createuser -s $(whoami); createdb $(whoami)

answered Jul 18, 2016 at 19:01

Miles Erickson's user avatar

Miles EricksonMiles Erickson

2,5742 gold badges17 silver badges18 bronze badges

2

psql postgres

postgres=# CREATE ROLE username superuser;
postgres=# ALTER ROLE username WITH LOGIN;

answered Apr 7, 2019 at 15:08

Abel's user avatar

AbelAbel

3,93932 silver badges31 bronze badges

4

For version Postgres 9.5 use following comand:

psql -h localhost -U postgres

Hope this will help.

answered Jan 13, 2019 at 5:07

Kalyan Halder's user avatar

0

Working method,

  1. vi /etc/postgresql/9.3/main/pg_hba.conf
  2. local all postgres peer
    here change peer to trust
  3. restart, sudo service postgresql restart

  4. now try, psql -U postgres

answered Sep 10, 2017 at 16:23

Mohideen bin Mohammed's user avatar

2

I did a healthcheck with docker-compose.

healthcheck:
  test: ['CMD-SHELL', 'pg_isready']
  interval: 5s
  timeout: 5s
  retries: 5

If you also have that change the user:

healthcheck:
  test: ['CMD-SHELL', 'pg_isready -U postgres'] # <<<---
  interval: 5s
  timeout: 5s
  retries: 5

answered Aug 7, 2021 at 8:07

Jan's user avatar

JanJan

11.8k9 gold badges52 silver badges87 bronze badges

For Windows users : psql -U postgres

You should see then the command-line interface to PostgreSQL: postgres=#

answered Feb 8, 2019 at 12:13

Andriy Tolstoy's user avatar

Andriy TolstoyAndriy Tolstoy

5,6322 gold badges31 silver badges30 bronze badges

1

In local user prompt, not root user prompt, type

sudo -u postgres createuser <local username>

Then enter password for local user.

Then enter the previous command that generated «role ‘username’ does not exist.»

Above steps solved the problem for me.
If not, please send terminal messages for above steps.

Erwin Brandstetter's user avatar

answered Jun 21, 2015 at 20:28

Robert Cambil's user avatar

0

Manually creating a DB cluster solved it in my case.

For some reason, when I installed postgres, the «initial DB» wasn’t created. Executing initdb did the trick for me.

This solution is provided in the PostgreSQL Wiki — First steps:

initdb

Typically installing postgres to your OS creates an «initial DB» and starts the postgres server daemon running. If not then you’ll need to run initdb

Community's user avatar

answered Aug 28, 2018 at 19:53

Natacha's user avatar

NatachaNatacha

1,12415 silver badges23 bronze badges

0

sudo -u postgres createuser --superuser $USER

sudo -u postgres createdb $USER

This should definitely work for you.

answered Jul 25, 2022 at 13:05

Boy Nandi's user avatar

dump and restore with --no-owner --no-privileges flags

e.g.

dump — pg_dump --no-owner --no-privileges --format=c --dbname=postgres://userpass:username@postgres:5432/schemaname > /tmp/full.dump

restore — pg_restore --no-owner --no-privileges --format=c --dbname=postgres://userpass:username@postgres:5432/schemaname /tmp/full.dump

answered Jul 25, 2019 at 12:29

srghma's user avatar

srghmasrghma

4,7002 gold badges38 silver badges54 bronze badges

for those who using docker and correctly followed the instructions from official doc, if you still met this problem, RESTART windows and try again.

answered Apr 27, 2022 at 4:57

Siwei's user avatar

SiweiSiwei

19.3k6 gold badges73 silver badges94 bronze badges

Follow These Steps and it Will Work For You :

  1. run msfconsole
  2. type db_console
  3. some information will be shown to you chose the information who tell you to make: db_connect user:pass@host:port.../database sorry I don’t remember it but it’s like this one then replace the user and the password and the host and the database with the information included in the database.yml in the emplacement: /usr/share/metasploit-framework/config
  4. you will see. rebuilding the model cache in the background.
  5. Type apt-get update && apt-get upgrade after the update restart the terminal and lunch msfconsole and it works you can check that by typing in msfconsole: msf>db_status you will see that it’s connected.

always-a-learner's user avatar

answered Aug 17, 2017 at 10:20

Loli Pronoms's user avatar

Follow these steps to get postgres working.

  1. In your terminal, locate the Application Support folder with the following command.
    /Users/[name of the user]/library/application support
  2. Delete the application, Postgres.
  3. Reinstall the app and it should work just fine.

answered Jul 11, 2021 at 5:48

Oteri Eyenike's user avatar

Something as simple as changing port from 5432 to 5433 worked for me.

answered Aug 12, 2020 at 0:23

Guka Nozadze's user avatar

1

Используйте пользователя postgres операционной системы для создания вашей базы данных — если вы не настроили роль базы данных с необходимыми привилегиями, соответствующими пользователю вашей операционной системы с таким же именем (h9uest в вашем случае):

sudo -u postgres -i

Как рекомендуется здесь или здесь.

Тогда попробуйте еще раз. Напечатайте exit когда закончите с работой как системный пользователь postgres.

Или выполните одну команду createuser как postgres с sudo, как продемонстрировано drees в другом ответе.

Смысл заключается в том, чтобы использовать пользователя операционной системы, совпадающего с ролью базы данных с тем же именем, для предоставления доступа через ident аутентификацию. postgres — это пользователь операционной системы по умолчанию, который инициализировал кластер базы данных. Руководство:

Для начальной загрузки системы базы данных, недавно инициализированная система всегда содержит одну предопределенную роль. Эта роль всегда является «суперпользователем», и по умолчанию (если она не изменена при запуске initdb) она будет иметь то же имя, что и пользователь операционной системы, который инициализировал кластер базы данных. Обычно эта роль будет называться postgres. Чтобы создать больше ролей, сначала необходимо подключиться к этой начальной роли.

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

Читайте о ролях базы данных и аутентификации клиента в руководстве.

Я настраиваю свой PostgreSQL 9.1. Я не могу ничего сделать с PostgreSQL: не могу createdb, не может createuser; все операции возвращают сообщение об ошибке

Fatal: role h9uest does not exist

h9uest — мое имя учетной записи, а я sudo apt-get install PostgreSQL 9.1 в этой учетной записи.
Аналогичная ошибка сохраняется для учетной записи root.

4b9b3361

Ответ 1

Используйте postgres пользователя операционной системы для создания вашей базы данных — если вы не настроили роль базы данных с необходимыми привилегиями, соответствующими пользователю вашей операционной системы с таким же именем (h9uest в вашем случае):

sudo -u postgres -i

Как рекомендуется здесь или здесь.

Тогда попробуйте еще раз. Напечатайте exit когда закончите с работой как системный пользователь postgres

Или выполните одну команду createuser как postgres с sudo, как продемонстрировано drees в другом ответе.

Смысл заключается в том, чтобы использовать пользователя операционной системы, совпадающего с ролью базы данных с тем же именем, для предоставления доступа через ident аутентификацию. postgres — это пользователь операционной системы по умолчанию, который инициализировал кластер базы данных. Руководство:

Для начальной загрузки системы базы данных, недавно инициализированная система всегда содержит одну предопределенную роль. Эта роль всегда является «суперпользователем», и по умолчанию (если она не изменена при запуске initdb) она будет иметь то же имя, что и пользователь операционной системы, который инициализировал кластер базы данных. Обычно эта роль будет называться postgres. Чтобы создать больше ролей, сначала необходимо подключиться к этой начальной роли.

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

Читайте о ролях базы данных и аутентификации клиента в руководстве.

Ответ 2

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

fooobar.com/questions/13172/…

Короче говоря, работая

sudo -u postgres createuser owning_user

создает роль с именем owning_user (в данном случае h9uest). После этого вы можете запустить rake db:create из терминала под любым именем учетной записи, которое вы создали, без необходимости входить в среду postgres.

Ответ 3

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;

Ответ 4

Установка postgres с помощью apt-get не создает роль пользователя или базу данных.

Чтобы создать роль суперпользователя и базу данных для вашей личной учетной записи пользователя:

sudo -u postgres createuser -s $(whoami); createdb $(whoami)

Ответ 5

Это работает для меня:

psql -h localhost -U postgres

Ответ 6

Рабочий метод,

  • vi /etc/postgresql/9.3/main/pg_hba.conf
  • local all postgres peer
    здесь измените равноправный на доверие
  • перезагрузка, sudo service postgresql restart

  • теперь попробуйте, psql -U postgres

Ответ 7

Я установил его на macOS и должен был:

cd /Applications/Postgres.app/Contents/Versions/9.5/bin
createuser -U postgres -s YOURUSERNAME
createdb YOURUSERNAME

Вот источник: https://github.com/PostgresApp/PostgresApp/issues/313#issuecomment-192461641

Ответ 8

В приглашении локального пользователя, а не в командной строке пользователя root, введите

sudo -u postgres createuser <local username>

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

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

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

Ответ 9

Для версии Postgres 9.5 используйте следующую команду:

psql -h localhost -U postgres

Надеюсь, это поможет.

Ответ 10

Создание кластера БД вручную решило проблему в моем случае.

По какой-то причине, когда я установил postgres, «исходная БД» не была создана. Выполнение initdb мне.

Это решение представлено в PostgreSQL Wiki — Первые шаги:

initdb

Обычно установка postgres в вашей ОС создает «начальную БД» и запускает демон сервера postgres. Если нет, то вам нужно запустить initdb

Ответ 11

Следуйте этим шагам, и это сработает для вас:

  • run msfconsole
  • Тип db_console
  • Некоторая информация будет показана вам, вы выбрали информацию, которая говорит вам сделать: db_connect user:[email protected]:port.../database извините, я не помню, но он как этот, затем заменяет пользователя и пароль, а также хост и базу данных информацией включен в database.yml в пространстве: /usr/share/metasploit-framework/config
  • вы увидите. пересоздание кэша модели в фоновом режиме.
  • Введите apt-get update && & & apt-get upgrade после обновления перезапустите терминал и обеденный msfconsole, и он работает, вы можете проверить, что, введя msfconsole: msf>db_status, вы увидите, что он подключен.

Ответ 12

psql postgres

postgres=# CREATE ROLE username superuser;
postgres=# ALTER ROLE username WITH LOGIN;

Ответ 13

Для пользователей Windows: psql -U postgres

Вы должны увидеть интерфейс командной строки для PostgreSQL: postgres=#

Ответ 14

сбросить и восстановить с помощью --no-owner --no-privileges flags

например

dump — pg_dump --no-owner --no-privileges --format=c --dbname=postgres://userpass:[email protected]:5432/schemaname >/tmp/full.dump

restore — pg_restore --no-owner --no-privileges --format=c --dbname=postgres://userpass:[email protected]:5432/schemaname/tmp/full.dump

Ответ 15

Удаление всего и сохранение 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


Я настраиваю свой 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 #authentication #psql #fatal-error

Вопрос:

Пользователь Windows 10 пытается либо навсегда удалить роль, чтобы ошибка не отображалась, либо создать суперпользователя без пароля.

Я искал несколько часов безрезультатно. Пытался:

Создание нового пользователя и базы данных с помощью СУПЕРПОЛЬЗОВАТЕЛЯ CREATE USER Nistic; Регистрация БАЗЫ ДАННЫХ С ПОМОЩЬЮ ВЛАДЕЛЬЦА Nistic;

Роль была успешно создана, но при выходе из системы и повторном входе в систему ввод «psql» в терминале все равно вызовет ту же ошибку. [РЕДАКТИРОВАТЬ] Я могу войти под именем пользователя postgres, введя psql-U postgres, но по какой-либо причине имя пользователя по умолчанию по-прежнему имеет значение Nistic.

Я уже проверил файл conf и настроил все методы на доверие. Я попытался удалить пользователя и воссоздать его заново.

Я просто хотел, чтобы заголовок включал пользователя более общего характера, несмотря на то, что он показан выше.

Я в значительной степени перепробовал все остальное, что смог найти, ПОЭТОМУ.

Пожалуйста, помогите, спасибо.

Экран ниже, чтобы показать некоторые из странностей (пожалуйста, прочитайте каждую строку перед комментарием — проблема в том, что после избавления от Nistic он все еще ожидает Nistic) введите описание изображения здесь

Комментарии:

1. Если вы не можете войти в систему с psql помощью как это делается CREATE USER и CREATE DATABASE ? Кроме того, как бы вы это ни делали, что отображается в качестве имени пользователя? Есть ли у вас более одного запущенного экземпляра Postgres, и если да, то уверены ли вы, что подключаетесь к правильному экземпляру. Кроме того, вы уверены, что редактируете правильный pg_hba.conf файл?

2. Я могу войти в систему с помощью psql-U postgres, и все. Команды «Создать» определенно работают. Извините, что я не решался предоставить эту информацию, потому что я не хотел, чтобы это звучало так, как будто я кого-то принижаю на самом деле, но да, я все это перепробовал, и я уверен, что редактировал правильный файл (pg_hba.conf).

3. Мне кажется, что зависть PGUSER была установлена. См. Раздел Переменные Env . Я больше недостаточно использую Windows, чтобы рассказать вам, как это проверить. Это автоматически приведет к эквивалентному pf -U Nistic при использовании psql без a -U <some_user> . В противном случае по умолчанию для -U in без указания его psql значения будет использоваться имя пользователя операционной foste системы . Тем временем вам нужно будет принудительно указать имя пользователя, указав -U <some_name> его .

4. Имя пользователя, которое вы создали, было в нижнем регистре, так как вы не заключили имя в двойные кавычки в SQL. Но у того, под чьим именем вы пытались войти, была заглавная буква.

5. Я не могу в это поверить, но это был правильный ответ, @jjanes. Я упустил это из виду, потому что думал, что все роли автоматически делаются строчными, и не понимал, что это можно изменить с помощью кавычек.

[Запись ошибки] PSQL: Fatal: роль [пользователь] не существует

Это потому что psql По умолчанию используется база данных текущего имени соединения, буквальное значение — это текущее имя пользователя базы данных, конечно, не существует, конечно,PostgreSQL Три база данных будут созданы по умолчанию

postgres
template0
template1

Если вы хотите подключить текущее базу данных имени пользователя, вы можете пройти

createdb

Эта команда по умолчанию создает данные с текущим именем пользователя, после выполнения,psqlПодключен по умолчанию

Я настраиваю свой PostgreSQL 9.1. Я ничего не могу сделать с PostgreSQL: не могу , не могу ; все операции возвращают сообщение об ошибке


— это имя моей учетной записи, а я PostgreSQL 9.1 под этой учетной записью. Аналогичная ошибка сохраняется для учетной записи .

  • 1 После этого вы можете столкнуться с , проверьте dba.stackexchange.com/questions/57723/….
  • 20 Я ответил на этот вопрос здесь. Прочтите также этот учебник «Как установить Postgres для Ubuntu Linux».
  • @Ruzenhack, эта ссылка на руководство была именно тем, что мне нужно! Очень понятно и просто
  • 5 psql -h локальный хост -U postgres
  • Если вы получаете ошибку И ошибку , проверьте этот ответ: stackoverflow.com/a/56658832/1689770

Использовать пользователь операционной системы для создания базы данных — если вы не настроили база данных роль с необходимыми привилегиями, которая соответствует пользователю вашей операционной системы с таким же именем ( в вашем случае):


Как рекомендовано здесь или здесь.

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

Или выполните единственную команду как с , как показано drees в другом ответе.

Дело в том, чтобы использовать пользователя операционной системы, соответствующего одноименной роли базы данных, для предоставления доступа через аутентификация. — пользователь операционной системы по умолчанию, инициализировавший кластер базы данных. Руководство:

Для начальной загрузки системы базы данных только что инициализированная система всегда содержит одну предопределенную роль. Эта роль всегда является «суперпользователем», и по умолчанию (если она не изменена при запуске ) у нее будет то же имя, что и у пользователя операционной системы, который инициализировал кластер базы данных. Обычно эта роль будет называться . Чтобы создать больше ролей, вы сначала должны подключиться в качестве этой начальной роли.

Я слышал о странных настройках с нестандартными именами пользователей или о том, что пользователь операционной системы не существует. Здесь вам нужно будет адаптировать свою стратегию.

Прочтите в руководстве о ролях базы данных и аутентификации клиентов.

  • 1 Невозможно запустить от имени пользователя postgres … Как установить программу? См. Эту проблему с установкой S2geometry.
  • 1 В зависимости от конфигурации может потребоваться .
  • 3 не работает, а работает! Что делает флаг ?
  • 2 @parsecer: запускается интерактивная оболочка, аналогичная , но основанная на привилегиях sudo. См. .

После того, как я попробовал много решений других людей, но безуспешно, этот ответ наконец помог мне.

https://stackoverflow.com/a/16974197/2433309

Короче говоря, бег


создает роль с именем owning_user (в данном случае h9uest). После этого вы можете запустить из терминала под любым именем учетной записи, которое вы настроили, без необходимости входить в среду Postgres.

  • 30 Если после этого вы получите сообщение об ошибке «недостаточно прав», вы можете добавить флаг -s к указанной выше команде. Это создаст вашего нового пользователя как суперпользователя. Помните о последствиях этого для безопасности, если вы решите это сделать.
  • 1 Я получаю «недостаточно прав», но теперь получаю ОШИБКУ: roll «username» уже существует.
  • 5 @ConnorLeech Вы можете заменить postgres именем вашего суперпользователя PG. В моем случае это было мое имя.
  • 1 Мне также пришлось использовать , и мне не нужно было использовать (просто работало нормально)
  • 2 хорошо, так тогда почему

создание роли на pgsql с привилегиями «суперпользователя»


Затем создайте пользователя


Назначьте привилегию пользователю


Затем включите вход для этого пользователя, чтобы вы могли запустить, например: , с обычного терминала :


  • 4 Я только что выполнил новую установку PostgreSQL 9.4.4 и смог использовать следующее для создания нового суперпользователя: , который объединяет все три шага …
  • 27 # GRANT ROOT мне; ОШИБКА: роль «корень» не существует
  • 6 более простая версия:
  • 2 @shacker
  • Я использую root для запуска сервера, затем «psql -U postgres -h 127.0.0.1 —command« СОЗДАТЬ ПОЛЬЗОВАТЕЛЬСКИЙ postgresondocker С ПАРОЛЕМ SUPERUSER ‘postgresondocker’; » && createdb -O postgresondocker postgresondocker« могу ли я использовать для этого root, если я добавлю его в pg_ident?

При установке postgres с использованием не создается роль пользователя или база данных.

Чтобы создать роль суперпользователя и базу данных для вашей личной учетной записи:

  • 1 Мне нужно было запустить вторую часть как:
  • 2 @SanD Если вы создали свою учетную запись в качестве суперпользователя (с помощью флага в первой команде), вы можете создать базу данных как вы. Вам не нужно запускать как .
  • 2 Отличный ответ! Сэкономил мне часы отладки !!

Это работает для меня:


  • пожалуйста, добавьте пароль для указанного выше пользователя.
  • 1 @Vincent, если пароль никогда не менялся после установки PostgreSQL, по умолчанию это (проверено в Linux и Windows).
  • 1

  • 4 результаты:
  • 2 ? Зависит от вашего пользователя (-U).
  • благодарю вас! Я изо всех сил пытался сделать резервную копию postgresql с root, так как я не знаю пароль postgres
  • Я получаю сообщение об ошибке «Чтобы создать суперпользователя, должен быть суперпользователь»

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

  1. здесь меняй сверстник к доверять
  2. перезапуск,

  3. теперь попробуйте,

  • 2 Должно быть очевидно, что метод рекомендуется только в полностью защищенной среде. Хотя доступ с ненадежных подключений возможен, никогда выставьте свой кластер БД таким образом.
  • Проверить: Если служба postgresql не запущена, возможно, в файле есть ошибка.

Для версии Postgres 9.5 используйте следующую команду:


Надеюсь, это поможет.

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

sudo -u postgres createuser  

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

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

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

Я установил его на macOS, и мне пришлось:


Вот источник: https://github.com/PostgresApp/PostgresApp/issues/313#issuecomment-192461641

За Windows пользователи:

Затем вы должны увидеть интерфейс командной строки для PostgreSQL:

В моем случае это решило создание кластера БД вручную.

По какой-то причине, когда я установил postgres, «исходная БД» не была создана. Выполнение помогло мне.

Это решение представлено в PostgreSQL Wiki — Первые шаги:

initdb

Обычно установка postgres в вашу ОС создает «начальную базу данных» и запускает демон сервера postgres. Если нет, то вам нужно запустить initdb

дамп и восстановление с флагами

например

дамп —

восстановить —

Следуйте этим шагам, и это сработает для вас:

  1. бег
  2. введите db_console
  3. некоторая информация будет показана вам, выбрав информацию, которая скажет вам сделать: извините, я не помню, но это похоже на этот, затем замените пользователя и пароль, хост и базу данных с информацией, включенной в в размещение:
  4. ты увидишь. восстановление кеша модели в фоновом режиме.
  5. Введите apt-get update && apt-get upgrade после обновления, перезапустите терминал и запустите msfconsole, и он работает, вы можете проверить это, набрав , и вы увидите, что он подключен.

У меня сработало что-то простое, например, изменение порта с 5432 на 5433.

Понравилась статья? Поделить с друзьями:
  • Psp ошибка удаления игры
  • Pubg ошибка не удалось выполнить инициализацию steam
  • Pubg ошибка не допускается вашей платформой
  • Pubg ошибка время подключения истекло
  • Pubg ошибка serialization error action needed