1

Temat: hasło dla użytkownika postgres

Zainstalowałem postgreSQL na PLD. Dodałem użytkownika postgres - ale on już był, dodałem zwykłego użytkownika i nadałem mu hasło dostępu i jest ok. Tylko że teraz jak chcę otworzyć bazę jako postgres to wymaga podania hasła. Jak mam mu to podać skoro nic takiego nie definiowałem? W pliku pg_hba.conf  mam:

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
local   all         all                               trust
# IPv4 local connections:
host    all         all         127.0.0.1/32          trust
# IPv6 local connections:
host    all         all         ::1/128               trust

Ogólnie to takie jest moje pytanie, co zrobić żeby postgres miał wiadome mi hasło?

Ostatnio edytowany przez gregorio99 (2010-03-12 22:25:50)

2

Odp: hasło dla użytkownika postgres

Czy zmieniałeś plik pg_hba.conf po uruchomieniu maszyny? Jeśli tak to czy przerestartowałeś serwer?
Jeśli nie to czy jesteś pewien że patrzysz na dobry plik pg_hba.conf (jeśli użytkownik postgres już był to czy to znaczy że wcześniej był już zainstalowany postgres?, może zostały jakieś stare configi).
Sprawdź poleceniem pg_config z jakiego katalogu postgres czyta pliki?

3

Odp: hasło dla użytkownika postgres

4

Odp: hasło dla użytkownika postgres

Dobra to podaj jeszcze wynik

echo $PGDATA

Jeśli nic nie zwraca to podaj jak uruchamiasz bazę.

5

Odp: hasło dla użytkownika postgres

echo $PGDATA - nic nie zwraca
Baza jest uruchamiana przy starcie systemu ale pierwszy raz uruchomiłem ją poleceniem:

[root@pldmachine ~]# service postgresql start
Usługa PostgreSQL /var/lib/pgsql jest już uruchomiona.

6

Odp: hasło dla użytkownika postgres

No dobra, to przeszukaj system plików w poszukiwaniu wszystkich plików pg_hba.conf
Polecenie z konta root'a

find / -iname pg_hba.conf

7

Odp: hasło dla użytkownika postgres

Tak to wygląda:

[root@pldmachine ~]# find / -iname pg_hba.conf
/var/lib/pgsql/pg_hba.conf

PS. A może być tak, że użytkownik postgres wylądował mi po prostu bez hasła?

Ostatnio edytowany przez gregorio99 (2010-03-14 14:50:33)

8

Odp: hasło dla użytkownika postgres

9

Odp: hasło dla użytkownika postgres

Mój sposób logowania się do bazy wygląda tak (bo już sam nie jestem pewien czy dobrze to robię):

 [root@pldmachine ~]# su - postgres
[postgres@pldmachine ~]$ psql
psql (8.4.2)

Type "help" for help.

postgres=# ^Z[1] + Stopped              psql
lub 
[postgres@pldmachine ~]$ psql test
psql (8.4.2)

Type "help" for help.

test=# 

po zakomentowaniu linii

# local   all         all                               trust

Nie mogłem uruchomić bazy

[root@pldmachine /]# service postgresql stop    
Zatrzymywanie usługi PostgreSQL /var/lib/pgsql.................... [ ZROBIONE ]
[root@pldmachine /]# service postgresql start   
Uruchamianie usługi PostgreSQL /var/lib/pgsql..................... [ PROBLEMY ]
could not start server

Po odkomentowaniu wszystko wróciło do normy.

10

Odp: hasło dla użytkownika postgres

pg_ctl start -D /var/lib/pgsql/

11

Odp: hasło dla użytkownika postgres

1. teraz wcale nie logowałem się do bazy tylko ją włączałem i wyłączałem i wszystko jest podobnie po zakomentowaniu linii dostaję:

[root@pldmachine init.d]# /etc/init.d/postgresql stop
Zatrzymywanie usługi PostgreSQL /var/lib/pgsql.............................................. [ ZROBIONE ]

[root@pldmachine init.d]# /etc/init.d/postgresql start 
Uruchamianie usługi PostgreSQL /var/lib/pgsql............................................... [ PROBLEMY ]
could not start server

Powiem więcej, także po przeładowaniu systemu podczas ładowania postgres się nie włącza.

Usiłowałem zastosować Twoją komendę ale coś mi w niej nie grało...

[root@pldmachine ~]# postgres start  -D /var/lib/pgsql/
"root" execution of the PostgreSQL server is not permitted.
The server must be started under an unprivileged user ID to prevent
possible system security compromise.  See the documentation for
more information on how to properly start the server.

- na pierwszym miejscu ma być nazwa użytkownika?

12

Odp: hasło dla użytkownika postgres

Nie możesz uruchomić serwera na prawach użytkownika root, do tego jest użytkownik postgres. Przeloguj się na postgresa i spróbuj uruchomić sewer.
I popatrz dokładnie jakie polecenie wpisałem, bo raczej nie to którego ty użyłeś smile.

13

Odp: hasło dla użytkownika postgres

Oki faktycznie.
Teraz mi się udało, po zakomentowaniu powyższj linii otrzymałem:

[root@pldmachine ~]# su - postgres
[postgres@pldmachine ~]$ psql
psql: FATAL:  no pg_hba.conf entry for host "[local]", user "postgres", database "postgres", SSL off
[postgres@pldmachine ~]$ 

14

Odp: hasło dla użytkownika postgres

No to odkomentuj ta linijkę i zrestartuj sewer (poleceniem pg_ctl) no i sprawdź czy uda sie zalogowac.

15

Odp: hasło dla użytkownika postgres

Mogę się zalogować, bez problemu.

[root@pldmachine ~]# su - postgres 
[postgres@pldmachine ~]$ psql
psql (8.4.2)
Type "help" for help.

postgres=# 

16

Odp: hasło dla użytkownika postgres

No to problem rozwiązany. CZy chcesz dalej ciągnąc dlaczego przy odpalaniu z tym service nie dzialalo. Chyba że może teraz działa.

17

Odp: hasło dla użytkownika postgres

Oki Dzięki rski ! Już wiem jak najlepiej odpalać bazę danych. Ale ja chciałem zapytać o hasło dla użytkownika 'postgres' bo właśnie tego nie rozumiem. Aby zalogować się jako użytkownik postgres najpierw loguję się jako root:

[g@pldmachine ~]$ su -
Hasło: 
[root@pldmachine ~]#

i jest ok, system pyta mnie o hasło i dalej loguję się jako postgres:

[root@pldmachine ~]# su - postgres
[postgres@pldmachine ~]$ 

i pytanie dlaczego postgres nie wymaga abym podał mu hasło? Czy dlatego iż root ma wyższe uprawnienia i to samo w sobie - wynika z architektury sytemu ? Czy po prostu postgres nie ma zdefinowanego hasła? Jak mam to sprawdzić?

18

Odp: hasło dla użytkownika postgres

local   all         all                               trust

19

Odp: hasło dla użytkownika postgres

Dzięki za to wytłumaczenie smile