Jak połączyć Postgres z serwerem localhost za pomocą pgAdmin w systemie Ubuntu?

104

Zainstalowałem Postgres za pomocą tego polecenia

sudo apt-get install postgresql postgresql-client postgresql-contrib libpq-dev

Za pomocą psql --versionterminala otrzymujępsql (PostgreSQL) 9.3.4

następnie zainstalowałem pgadminz

sudo apt-get install pgadmin3

Później otworzyłem interfejs użytkownika i utworzyłem serwer z tymi informacjami

wprowadź opis obrazu tutaj

ale pojawia się ten błąd

wprowadź opis obrazu tutaj

jak mogę to naprawić?

TuGordoBello
źródło
pobierz postgresql v9.3 z tego linku https://www.enterprisedb.com/downloads/postgres-postgresql-downloads#windows i ponownie uruchom pgadmin III, otrzymasz lokalny host już zainstalowany, nie trzeba się łączyć.
Dhavalkumar Prajapati

Odpowiedzi:

29

Nie utworzyłeś użytkownika db. Jeśli jest to tylko nowa instalacja, domyślnym użytkownikiem jest, postgresa hasło powinno być puste. Po uzyskaniu do niego dostępu możesz utworzyć potrzebnych użytkowników.

Eric Workman
źródło
43
Jeśli to zrobię, pojawia się ten błąd Error connecting to the server: fe_sendauth: no password supplied
TuGordoBello
Tutaj w opensuse hasło użytkownika postgres nie jest puste, ale niezdefiniowane (wykrzyknik w / etc / shadow). Brak możliwości logowania za pomocą hasła.
Str.
Właśnie przetestowane w celu zweryfikowania i tak, Pg emituje password authentication faileddla użytkownika, który nie istnieje podczas korzystania z md5auth.
Craig Ringer,
1
jak tworzysz użytkownika?
ahnbizcad
2
„Błąd podczas łączenia się z serwerem: fe_sendauth: brak hasła”
Cerin
175

Zmień hasło dla postgresów roli:

sudo -u postgres psql postgres

alter user postgres with password 'postgres';

Teraz połącz się z pgadmin za pomocą nazwy użytkownika postgres i hasła postgres

Teraz możesz tworzyć role i bazy danych za pomocą pgAdmin

Jak zmienić hasło użytkownika PostgreSQL?

WiredIn
źródło
10
lub po prostu ... „sudo -u postgres psql”, a następnie wpisz „\ password”. wciśnij Enter. Wprowadź nowe hasło.
Jay Modi,
1
To powinna zostać zaakceptowana odpowiedź. Dziękuję Ci. To bardzo pomogło.
Pramesh Bajracharya
25

To pomaga mi:


1. Otwórz plik pg_hba.conf

sudo nano /etc/postgresql/9.x/main/pg_hba.conf

i zmień tę linię:

Database administrative login by Unix domain socket
local   all             postgres                                md5

do

Database administrative login by Unix domain socket
local   all             postgres                                trust
  1. Zrestartuj serwer

    restart usługi sudo postgresql

  2. Zaloguj się do psql i ustaw hasło

    psql -U postgres

ALTER USER postgres with password 'new password';

  1. Ponownie otwórz plik pg_hba.conf i zmień tę linię:
Logowanie administracyjne do bazy danych przez gniazdo domeny Unix
    lokalny zaufanie do wszystkich postgresów

do

    Logowanie administracyjne do bazy danych przez gniazdo domeny Unix
    lokalny wszystkie postgres md5
  1. Zrestartuj serwer

    restart usługi sudo postgresql


To działa.

wprowadź opis obrazu tutaj


Przydatne linki
1: PostgreSQL (z witryny ubuntu.com)

Artem Solovev
źródło
To rozwiązało mój problem, ale czy możesz wyjaśnić, dlaczego zmiana logowania administratora bazy danych na zaufanie przed ustawieniem hasła postgres jest wymagana w niektórych przypadkach?
HostMyBus
@HostMyBus Cześć stary, właściwie w ogóle nie pamiętam tej sprawy. Spróbuj wykopać kilka odpowiedzi z sieci (myślę, że jest to dobre wyjaśnienie)
Artem Solovev
@HostMyBus to funkcja bezpieczeństwa. Jeśli jest ustawiony na zaufanie, każdy użytkownik na komputerze może zalogować się do bazy danych.
Simon Zyx
I rzeczywiście nie trzeba go: wystarczy użyć WiredIn odpowiedź
Simon ZYX
4

Najpierw utwórz użytkownika. Musisz to zrobić jako postgres użytkownika. Ponieważ konto systemowe postgres nie ma przypisanego hasła, możesz najpierw ustawić hasło lub postępować w ten sposób:

sudo /bin/bash
# you should be root now  
su postgres
# you are postgres now
createuser --interactive

a program wyświetli monit.

Str.
źródło
sudo -u postgres -idoprowadzi do pytania o hasło. W moim systemie nie ma hasła, które można wprowadzić. Moja propozycja działa zawsze (hm, mam nadzieję).
Str.
sudo -u postgress -inie prowadzi do pytania o hasło (przynajmniej na moim Ubuntu po domyślnej instalacji). Albo createuser --interactivenie prowadzi do monitu o hasło ... :(
Ondřej Doněk
@ OndřejDoněk moją propozycją było najpierw sudo / bin / bash, czy zrobiłeś to?
Str.
co powinieneś wpisać dla roli?
ahnbizcad
$ createuser --interactive Wpisz nazwę roli do dodania: postgres Czy nowa rola ma być superużytkownikiem? (t / n)y
Elise Chant
2

Najpierw należy zmienić hasło za pomocą terminala. (nazwa użytkownika to postgres)

postgres = # \ hasło postgres

Następnie zostaniesz poproszony o podanie hasła i potwierdzenie go.

Teraz będziesz mógł łączyć się za pomocą pgadmin z nowym hasłem.

Pubudu
źródło
0

jeśli otworzysz psqlkonsolę w oknie terminala, wpisując

$ psql

Twoja nazwa użytkownika superużytkownika zostanie wyświetlona przed =#, na przykład:

elisechant=#$

To będzie nazwa użytkownika, której powinieneś używać dla localhost.

Elise Chant
źródło