Właśnie zainstalowałem postgresql i podałem hasło x podczas instalacji. Kiedy próbuję zrobić createdb
i podać hasło, otrzymuję komunikat:
Createdb: nie można połączyć się z bazą danych postgres: FATAL: uwierzytelnienie hasła nie powiodło się dla użytkownika
To samo dotyczy createuser
.
Jak mam zacząć? Czy mogę dodać siebie jako użytkownika do bazy danych?
linux
database
postgresql
configuration
Rohit Banga
źródło
źródło
postgres
użytkownika. Jest toSU
PostgreSQL i otwiera cię na ataki na niego. Utwórz kolejnego superużytkownika i zarezerwuj zablokowanepostgres
dla administratorów UNIX z rootem.Odpowiedzi:
Pozostałe odpowiedzi nie były dla mnie całkowicie satysfakcjonujące. Oto, co działało dla postgresql-9.1 na Xubuntu 12.04.1 LTS.
Połącz się z domyślną bazą danych za pomocą postgres użytkownika:
Ustaw hasło dla postgres użytkownika, a następnie zamknij psql (Ctrl-D):
Edytuj
pg_hba.conf
plik:i zmień „peer” na „md5” w wierszu dotyczącym postgres:
Aby dowiedzieć się, którą wersję postgresql używasz, poszukaj folderu wersji pod
/etc/postgresql
. Możesz także użyć Nano lub innego edytora zamiast VIM.Uruchom ponownie bazę danych:
(Tutaj możesz sprawdzić, czy to działało
psql -U postgres
).Utwórz użytkownika o tej samej nazwie co ty (aby go znaleźć, możesz wpisać
whoami
):Opcje informują postgresql, aby utworzył użytkownika, który może się logować, tworzyć bazy danych, tworzyć nowe role, jest superużytkownikiem i będzie miał zaszyfrowane hasło. Naprawdę ważne są -P -E, więc zostaniesz poproszony o wpisanie hasła, które zostanie zaszyfrowane, i -d, abyś mógł zrobić
createdb
.Uwaga na hasła : najpierw poprosi o dwa razy nowe hasło (dla nowego użytkownika), powtórzy, a następnie raz hasło postgres (określone w kroku 2).
Ponownie edytuj
pg_hba.conf
plik (patrz krok 3 powyżej) i zmień „peer” na „md5” w wierszu dotyczącym „wszystkich” innych użytkowników:Uruchom ponownie (jak w kroku 4) i sprawdź, czy możesz się zalogować bez postów -U:
Pamiętaj, że jeśli wykonasz zwykłą operację
psql
, zakończy się ona niepowodzeniem, ponieważ spróbuje połączyć się z domyślną bazą danych o tej samej nazwie co ty (tjwhoami
.). template1 to administracyjna baza danych, która jest tutaj od samego początku.Teraz
createdb <dbname>
powinno działać.źródło
pg_hba.conf
musi być pierwszą linią, w przeciwnym razie może zostać zignorowana z powodu innych reguł (pgsql 9.3.5 na F21). Zajęło mi to trochę czasu, aby to zrozumieć, że odkomentowanie i zmiana już skomentowanych linii dla użytkownika postgresql nie wystarczy.local all all peer
punkt 3, na który teraz zmieniłemmd5
. Dobrze?W Linuksie PostgresQL jest zwykle skonfigurowany tak, aby zezwolić użytkownikowi root na zalogowanie się jako superużytkownik postgres
postgres
z powłoki (konsoli lub ssh).Następnie po prostu utworzysz nową bazę danych w zwykły sposób:
To powinno działać bez dotykania
pg_hba.conf
. Jeśli chcesz to zrobić za pomocą jakiegoś narzędzia GUI przez sieć - musisz zadzieraćpg_hba.conf
.źródło
psql: FATAL: Peer authentication failed for user "postgres"
nawet z sudo.psql -d mydatatabase -U myuser
.To jest moje rozwiązanie:
źródło
sudo bash
.Istnieją dwie metody, których możesz użyć. Oba wymagają utworzenia użytkownika i bazy danych.
Używając createuser i Createdb ,
Korzystanie z komend administracyjnych SQL i łączenie się za pomocą hasła przez TCP
A potem w powłoce psql
Następnie możesz się zalogować,
Jeśli nie znasz portu, zawsze możesz go uzyskać, wykonując następujące czynności, jako
postgres
użytkownik,Lub,
Sidenote: the
postgres
użytkownikRadzę NIE modyfikować
postgres
użytkownika.postgres
. Musisz mieć root, aby się uwierzytelnić jakopostgres
.postgres
odpowiednik PostgreSQL dla SQL ServerSA
, musisz mieć dostęp do zapisu do bazowych plików danych. A to oznacza, że normalnie i tak możesz siać spustoszenie.źródło
sudo -u postgres createuser -U postgres -d -e -E -l -P -r -s $(whoami)
-s
czyni użytkownika superużytkownikiem.EDYCJA: Ostrzeżenie: Proszę przeczytać odpowiedź przesłaną przez Evana Carrolla . Wydaje się, że to rozwiązanie nie jest bezpieczne i nie jest zalecane.
Działa to dla mnie w standardowej instalacji Ubuntu 14.04 64 bity .
Postępowałem zgodnie z instrukcjami, z niewielkimi modyfikacjami, które znalazłem w http://suite.opengeo.org/4.1/dataadmin/pgGettingStarted/firstconnect.html
sudo apt-get install postgresql
sudo –u postgres psql postgres
\password postgres
\q
#Database administrative login by Unix domain socket local all postgres peer
Do:
#Database administrative login by Unix domain socket local all postgres md5
sudo service postgresql restart
sudo –u postgres createdb mytestdb
psql –U postgres –W
\l
źródło
postgres
użytkownika to zły pomysł. stackoverflow.com/a/41604969/124486źródło
Prawdopodobnie musisz zaktualizować
pg_hba.conf
plik. Ten plik kontroluje, co użytkownicy mogą zalogować się z jakich adresów IP. Myślę, że użytkownik postgres jest domyślnie dość zablokowany.źródło
/var/lib/pgsql/data/pg_hba.conf
. Zmieńident
natrust
nahost
(ilocal
jeśli używasz ssh).Jeśli używasz systemu macOS tak jak ja, możesz nie mieć użytkownika postgres.
Podczas próby uruchomienia
sudo -u postgres psql
wystąpił błądsudo: unknown user: postgres
Na szczęście istnieją pliki wykonywalne, które zapewnia postgres.
Wtedy mogłem uzyskać dostęp
psql
bez problemów.Jeśli tworzysz nową instancję postgres od zera, oto kroki, które podjąłem. Użyłem portu innego niż domyślny, aby móc uruchomić dwie instancje.
Następnie edytowałem
/var/postgres/var-10-local/postgresql.conf
przy użyciu mojego preferowanego portu, 5433.Gotowe!
źródło
W systemie MacOS postępowałem zgodnie z poniższymi krokami.
Po raz pierwszy po instalacji uzyskaj nazwę użytkownika systemu.
Po zalogowaniu się do systemu możesz utworzyć bazę danych.
źródło
Wystarczy przejść do katalogu instalacyjnego i uruchomić ten plik „pg_env.bat”, więc po przejściu do folderu bin i uruchom pgAdmin.exe. To musi działać bez wątpienia!
źródło