Konfiguruję mój PostgreSQL 9.1. Nic nie mogę zrobić z PostgreSQL: nie createdb
mogę, nie mogę createuser
; wszystkie operacje zwracają komunikat o błędzie
Fatal: role h9uest does not exist
h9uest
to nazwa mojego konta, a ja sudo apt-get install
PostgreSQL 9.1 na tym koncie.
Podobny błąd utrzymuje się na root
koncie.
postgresql
authentication
h9uest
źródło
źródło
FATAL: role "user" is not permitted to log in
, sprawdź dba.stackexchange.com/questions/57723/ ...role doesn't exist
ORAZ błąd,can't create role, it already exists
sprawdź tę odpowiedź: stackoverflow.com/a/56658832/1689770Odpowiedzi:
Użyj użytkownika systemu operacyjnego,
postgres
aby utworzyć bazę danych - o ile nie skonfigurowano roli bazy danych z niezbędnymi uprawnieniami, które odpowiadają użytkownikowi systemu operacyjnego o tej samej nazwie (h9uest
w Twoim przypadku):Zgodnie z zaleceniami tutaj lub tutaj .
Następnie spróbuj ponownie. Wpisz
exit
po zakończeniu pracy jako użytkownik systemupostgres
.Lub wykonaj jedno polecenie
createuser
tak jak wpostgres
przypadkusudo
, jak pokazano w drees w innej odpowiedzi.Chodzi o to, aby użyć użytkownika systemu operacyjnego pasującego do roli bazy danych o tej samej nazwie, aby uzyskać dostęp poprzez
ident
uwierzytelnianie .postgres
jest domyślnym użytkownikiem systemu operacyjnego, który zainicjował klaster bazy danych. Instrukcja:Słyszałem o nieparzystych konfiguracjach z niestandardowymi nazwami użytkowników lub w których użytkownik systemu operacyjnego nie istnieje. Musisz tam dostosować swoją strategię.
Przeczytaj o rolach bazy danych i uwierzytelnianiu klienta w instrukcji.
źródło
sudo etc
jako użytkownik postgres ... Jak zainstalować program? Zobacz ten problem z instalacją S2geometry .su postgres
.sudo -u postgres
nie działa, asudo -u postgres -i
działa! Co robi-i
flaga?su
, ale oparta na uprawnieniach sudo. Zobaczyćman sudo
.Po wypróbowaniu rozwiązań wielu ludzi i bez powodzenia, ta odpowiedź w końcu mi pomogła.
https://stackoverflow.com/a/16974197/2433309
Krótko mówiąc, bieganie
tworzy rolę o nazwie właściciel_użytkownika (w tym przypadku h9uest). Następnie możesz uruchomić
rake db:create
z terminala pod dowolną skonfigurowaną nazwą konta bez konieczności wchodzenia do środowiska Postgres.źródło
-s
i nie musiałem używaćsudo -u postgres
(po prostucreateuser new_user
działało dobrze)psql: FATAL: role "jonny" does not exist
ok, więcsudo -u postgres -s createuser jonny
dlaczegocreateuser: creation of new role failed: ERROR: role "jonny" already exists
tworzenie roli na pgsql z uprawnieniami jako „superuser”
Następnie utwórz użytkownika
Przypisywanie uprawnień użytkownikowi
A następnie włącz logowanie tego użytkownika, abyś mógł uruchomić np .:
psql template1
z normalnego$
terminala:źródło
CREATE ROLE username superuser createdb login;
który łączy wszystkie trzy kroki ...sudo -u postgres createuser --superuser $USER; sudo -u postgres createdb $USER
#GRANT postgres TO username
Instalowanie postgres przy użyciu
apt-get
nie tworzy roli użytkownika ani bazy danych.Aby utworzyć rolę administratora i bazę danych dla osobistego konta użytkownika:
sudo -u postgres createuser -s $(whoami); createdb $(whoami)
źródło
sudo -u postgres createdb $(whoami)
-s
flagę w pierwszym poleceniu), możesz utworzyć bazę danych jako Ty. Nie będziesz musiał biegaćcreatedb
jakopostgres
.To działa dla mnie:
źródło
postgres
(testowane w systemie Linux i Windows).role postgres does not exist
Metoda pracy,
vi /etc/postgresql/9.3/main/pg_hba.conf
local all postgres peer
tutaj zmień peera na zaufanieuruchom ponownie,
sudo service postgresql restart
Spróbuj teraz,
psql -U postgres
źródło
trust
metoda jest wskazana tylko w całkowicie bezpiecznym środowisku. Chociaż możliwy jest dostęp z niezaufanych połączeń, nigdy nie narażaj klastra DB w ten sposób.pg_hba.conf
W przypadku wersji Postgres 9.5 użyj następującego polecenia:
Mam nadzieję, że to pomoże.
źródło
źródło
psql postgres
wyniki:psql: FATAL: role "root" does not exist
psql postgres -U postgres
? Zależy od posiadanego użytkownika (-U).W wierszu polecenia użytkownika lokalnego, a nie użytkownika root, wpisz
Następnie wprowadź hasło użytkownika lokalnego.
Następnie wprowadź poprzednie polecenie, które wygenerowało „rola„ nazwa użytkownika ”nie istnieje”.
Powyższe kroki rozwiązały dla mnie problem. Jeśli nie, wyślij wiadomości terminalu dla powyższych kroków.
źródło
Zainstalowałem go na macOS i musiałem:
Oto źródło: https://github.com/PostgresApp/PostgresApp/issues/313#issuecomment-192461641
źródło
Ręczne utworzenie klastra DB rozwiązało go w moim przypadku.
Z jakiegoś powodu, kiedy zainstalowałem postgres, „początkowa baza danych” nie została utworzona. Wykonanie
initdb
pomogło mi.To rozwiązanie jest dostępne na Wiki PostgreSQL - pierwsze kroki :
źródło
Dla użytkowników systemu Windows :
psql -U postgres
Powinieneś zobaczyć interfejs wiersza poleceń do PostgreSQL:
postgres=#
źródło
Wykonaj następujące kroki, a to zadziała dla Ciebie:
msfconsole
db_connect user:pass@host:port.../database
przepraszam, nie pamiętam tego, ale to tak, a następnie zastąp użytkownika i hasło oraz hosta i bazę danych informacjami zawartymi wdatabase.yml
miejscu :/usr/share/metasploit-framework/config
msfconsole: msf>db_status
zobaczysz, że jest podłączony.źródło
zrzuć i przywróć z
--no-owner --no-privileges
flagamina przykład
zrzut -
pg_dump --no-owner --no-privileges --format=c --dbname=postgres://userpass:username@postgres:5432/schemaname > /tmp/full.dump
przywrócić -
pg_restore --no-owner --no-privileges --format=c --dbname=postgres://userpass:username@postgres:5432/schemaname /tmp/full.dump
źródło