PostgreSQL error: Fatal: Rola "Nazwa użytkownika" nie istnieje

Konfiguruję mój PostgreSQL 9.1. Nie mogę nic zrobić z PostgreSQL: can 't createdb, can' t createuser; wszystkie operacje zwracają komunikat o błędzie

Fatal: role h9uest does not exist

h9uest to nazwa mojego konta, i sudo apt-get install PostgreSQL 9.1 pod tym kontem.
Podobny błąd występuje dla konta root.

Author: Erwin Brandstetter, 2012-08-12

11 answers

Użyj użytkownika systemu operacyjnego postgres aby utworzyć bazę danych - o ile nie skonfigurowano roli bazy danych z niezbędnymi uprawnieniami odpowiadającymi użytkownikowi systemu operacyjnego o tej samej nazwie (h9uest w Twoim przypadku):

sudo -u postgres -i

Zgodnie z zaleceniami tutaj lub tutaj.

Spróbuj jeszcze raz. Typ exit, gdy jest wykonywany z operating as System user postgres.

Lub wykonaj pojedyncze polecenie createuser jako postgres z sudo, jak zademonstrował drees w innej odpowiedzi.

Chodzi o to, aby użytkownik systemu operacyjnego pasujący do roli bazy danych o tej samej nazwie otrzymał dostęp za pośrednictwem ident uwierzytelnianie. postgres jest domyślnym użytkownikiem systemu operacyjnego, który zainicjował klaster bazy danych. Instrukcja:

W celu uruchomienia systemu bazodanowego, świeżo zainicjowany system zawsze zawiera jedną predefiniowaną rolę. Ta rola jest zawsze "superuser", i domyślnie (chyba że zmieniany podczas uruchamiania initdb) to będzie miał taką samą nazwę jak użytkownik systemu operacyjnego, który zainicjował klaster baz danych. Zwyczajowo rola ta będzie nazywana postgres. Aby utworzyć więcej ról, musisz najpierw połączyć się w ten sposób rola początkowa.

Słyszałem o dziwnych konfiguracjach z niestandardowymi nazwami użytkowników lub tam, gdzie użytkownik systemu operacyjnego nie istnieje. Musiałbyś tam dostosować swoją strategię.

Przeczytaj o Baza Danych role i uwierzytelnianie klienta w instrukcji.

 598
Author: Erwin Brandstetter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-07 00:08:43

Po wypróbowaniu wielu innych rozwiązań i bez powodzenia, ta odpowiedź w końcu mi pomogła.

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

In short, running

sudo -u postgres createuser owning_user

Tworzy rolę o nazwie owning_user (w tym przypadku h9uest). Następnie możesz uruchomić rake db:create z terminala pod dowolną nazwą skonfigurowanego konta bez konieczności wchodzenia do środowiska postgres.

 228
Author: drees,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:18:23
sudo su - postgres

psql template1

Tworzenie roli na pgsql z uprawnieniami jako "superuser"

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

Następnie Utwórz użytkownika

CREATE USER username; 
eg. CREATE USER demo;

Przypisanie uprawnień do użytkownika

GRANT ROOT TO username;

A następnie włącz logowanie tego użytkownika, aby można było uruchomić np.: psql template1, z normalnego $ terminala:

ALTER ROLE username WITH LOGIN;
 102
Author: Mohammed Saleem,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-09 17:02:12

Instalacja postgres przy użyciu apt-get nie tworzy roli użytkownika ani bazy danych.

Aby utworzyć rolę superużytkownika i bazę danych dla osobistego konta użytkownika:

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

 66
Author: Miles Erickson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-18 19:01:27

To działa dla mnie:

psql -h localhost -U postgres
 53
Author: mateusz.szymborski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-19 18:12:29

Metoda pracy,

  1. vi /etc/postgresql/9.3/main/pg_hba.conf
  2. local all postgres peer tutaj Zmień peer na trust
  3. Restart, sudo service postgresql restart

  4. Teraz spróbuj, psql -U postgres

 8
Author: Mohideen ibn Mohammed,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-10 16:23:48

W podpowiedzi użytkownika lokalnego, a nie root, wpisz

sudo -u postgres createuser <local username>

Następnie wprowadź hasło dla użytkownika lokalnego.

Następnie wprowadź poprzednie polecenie, które wygenerowało "Rola' Nazwa użytkownika ' nie istnieje."

Powyższe kroki rozwiązały problem dla mnie. Jeśli nie, Wyślij wiadomości terminalowe dla powyższych kroków.

 4
Author: Robert Cambil,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-24 18:10:15

Zainstalowałem go na macOS i musiałem:

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

Oto źródło: https://github.com/PostgresApp/PostgresApp/issues/313#issuecomment-192461641

 3
Author: Henry,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-29 02:15:58

Wykonaj następujące kroki, a to będzie działać dla Ciebie:

  1. run msfconsole
  2. Typ db_console
  3. Niektóre informacje zostaną wyświetlone do wyboru Informacji, którzy mówią, aby: db_connect user:pass@host:port.../database sorry nie pamiętam, ale to jest jak ten następnie zastąpić użytkownika i hasło i hosta i bazy danych z informacji zawartych w {[2] } w umieszczeniu: /usr/share/metasploit-framework/config
  4. Zobaczysz. przebudowa pamięci podręcznej modelu w tle.
  5. Type apt-get update & & apt-get upgrade po aktualizacji uruchom ponownie terminal i lunch msfconsole i działa możesz sprawdzić, że wpisując msfconsole: msf>db_status zobaczysz, że jest podłączony.
 1
Author: Loli Pronoms,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-17 14:07:35

Ręcznie zainicjować Starter DB rozwiązał to, w moim przypadku.

Wykonanie initdb zrobił sztuczkę dla mnie.

Z jakiegoś powodu, kiedy instalowałem postgres, "initial DB" nie został utworzony.

Aby rozwiązać problem, jest to rozwiązanie przewidziane dla wiki postgreSQL-pierwsze kroki .

Initdb

Zazwyczaj instalując postgres w systemie operacyjnym tworzy "initial DB" i uruchamia demona serwera postgres bieganie. Jeśli nie, musisz uruchomić initdb

 0
Author: Natacha,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-28 19:53:31

Odinstalowanie wszystkiego i utrzymanie 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"

I wanted PostgreSQL 9.6

 -2
Author: Dorian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-05 14:36:32