CodeGym /Kursy /SQL SELF /Typowe błędy przy instalacji i konfiguracji PostgreSQL

Typowe błędy przy instalacji i konfiguracji PostgreSQL

SQL SELF
Poziom 4, Lekcja 1
Dostępny

1. Główne komponenty PostgreSQL

Instalator powinien zainstalować ci trzy podstawowe rzeczy: serwer i dwóch klientów. Teraz trochę o nich opowiem.

Serwer postgres

To jest serce PostgreSQL. Serwer odpowiada za:

  • Obsługę zapytań od klientów.
  • Zarządzanie danymi: odczyt, zapis, aktualizację.
  • Zapewnienie bezpieczeństwa i integralności danych.

Kiedy uruchamiasz serwer PostgreSQL, jest gotowy przyjmować zapytania od klientów.

Klienci

Klienci — to programy, które łączą się z serwerem i wysyłają mu zapytania SQL. W PostgreSQL jest kilka popularnych klientów:

  • Program psql: konsola do pracy z PostgreSQL. Idealny dla "oldschoolowych" devów i fanów terminala.
  • Program pgAdmin: graficzny interfejs do zarządzania serwerem. To taki szwajcarski scyzoryk do baz danych — i ładnie, i wygodnie.
  • Inni klienci: serio, jest masa bibliotek i narzędzi do pracy z PostgreSQL z innych języków programowania, np. psycopg3 dla Pythona albo pg dla Ruby.

Jak te komponenty działają razem? Użytkownik inicjuje zapytanie przez klienta (psql/pgAdmin) → klient wysyła zapytanie do serwera postgres → serwer przetwarza zapytanie, używając danych z systemu plików i swojej pamięci → wynik wraca do klienta.

2. Łączymy się z bazą przez konsolę

Jak mam nadzieję pamiętasz, psql — to program do pracy z PostgreSQL przez linię poleceń. Jest idealny, jeśli chcesz szybko coś sprawdzić, wykonać zapytanie albo po prostu poeksplorować bazę.

Przykład: użycie psql


# Łączymy się z serwerem
psql -U postgres

Jeśli wszystko poszło OK, zobaczysz mniej więcej taki ekran:


psql (17.5)
Type "help" for help.

postgres=#

Gratulacje, jesteś w konsoli psql!

Jak już masz połączenie, możesz wykonywać komendy:


-- Stwórz bazę danych
CREATE DATABASE test_db;

-- Zobacz listę baz
\l

-- Przełącz się na konkretną bazę
\c test_db

-- Zakończ sesję
\q

To świetne narzędzie dla tych, którzy lubią pracować "na żywca".

3. Najczęstsze problemy z instalacją

A co jeśli coś poszło nie tak? Jeśli nie widzisz listy baz danych, albo nawet nie możesz się zalogować? Instalator skończył robotę i tyle 😡 Błędy, bluzgi w konsoli, postgres nie startuje, psql udaje, że cię nie zna. Znajome? Gratulacje — jesteś na klasycznym etapie „wszystko zrobiłem dobrze, ale nic nie działa”. 😅

Przejdźmy przez topowe miny, na które wchodzi co drugi nowicjusz. I zróbmy to na spokojnie, z ciepłą herbatą i mocnym postanowieniem pokonania każdej błędu w logach. Uzbrój się w cierpliwość — dziś robimy porządek i leczymy PostgreSQL z syndromu „działa tylko u mentora”. 🛠️🐘

Problem 1. Konflikt portów

Chyba jeden z najczęstszych przypadków. PostgreSQL domyślnie używa portu 5432 do połączenia z serwerem. Jeśli ten port jest już zajęty przez inny program, instalacja przejdzie gładko, ale serwera nie odpalisz.

Jak rozpoznać problem?

Przy starcie PostgreSQL serwer odmawia współpracy, albo wypluwa komunikat typu:


could not bind IPv4 socket: Address already in use

Rozwiązanie:

Sprawdź, który program zajmuje port 5432. Na Linuxie zrobisz to komendą:


sudo netstat -tuln | grep 5432

Na Windows w konsoli wpisz:


netstat -ano | find "5432"

Jeśli port faktycznie zajęty, możesz zmienić port dla PostgreSQL. Otwórz plik postgresql.conf (jest w folderze z danymi PostgreSQL) i znajdź linię:


#port = 5432

Zmień port na wolny, np.:


port = 5433

Nie zapomnij zrestartować serwera po zmianach.

Problem 2. Za małe uprawnienia

Na Windows możesz trafić na sytuację, gdzie instalator PostgreSQL nie może poprawnie skończyć instalacji, bo obecny użytkownik nie ma wystarczających uprawnień.

Jak rozpoznać problem?

Instalator się zawiesza albo wywala komunikat o braku uprawnień.

Rozwiązanie:

Odpal instalację jako administrator. Kliknij prawym na instalatorze i wybierz "Uruchom jako administrator".

Problem 3. Problemy ze zmiennymi środowiskowymi

Czasem po instalacji PostgreSQL komenda psql nie jest rozpoznawana w konsoli.

Jak rozpoznać problem?

Przy próbie odpalenia psql widzisz komunikat typu:


'psql' is not recognized as an internal or external command

Rozwiązanie:

Ten błąd oznacza, że ścieżka do folderu z binarkami PostgreSQL (np. C:\Program Files\PostgreSQL\17\bin) nie została dodana do zmiennych środowiskowych.

Żeby to naprawić na Windows:

  1. Otwórz "Właściwości systemu" → "Zaawansowane" → "Zmienne środowiskowe".
  2. Znajdź zmienną Path w sekcji "Zmienne systemowe" i edytuj ją.
  3. Dodaj ścieżkę do folderu bin PostgreSQL. Na przykład:
    
    C:\Program Files\PostgreSQL\17\bin
            
  4. Po tym zrestartuj konsolę.

4. Błędy przy połączeniu z serwerem

Czasem wszystko idzie gładko: odpalasz PostgreSQL, otwierasz psql i połączenie z bazą śmiga bez problemu. Ale bywa inaczej. Nagle błąd. Coś nie wpuszcza. Hasło niby dobre, serwer niby działa... A psql się burzy.

Bez paniki — takie błędy zdarzają się każdemu. Poniżej rozkminimy najczęstsze problemy z połączeniem i jak je szybko ogarnąć.

Problem 1. Złe hasło dla użytkownika postgres

Przy instalacji PostgreSQL ustawiasz hasło dla superusera DBMS postgres. Jeśli hasło zostało zapomniane albo wpisane źle, nie połączysz się z serwerem.

Jak rozpoznać problem?

Przy wpisaniu komendy połączenia:


psql -U postgres

Dostajesz błąd typu:


password authentication failed for user "postgres"

Rozwiązanie:

Jeśli zapomniałeś hasła do postgres, możesz je zresetować:

  1. Otwórz plik pg_hba.conf, który jest w folderze z danymi PostgreSQL C:\Program Files\PostgreSQL\17\data
  2. Zamień linię:
    
    host    all             all             127.0.0.1/32            md5
            
    Na:
    
    host    all             all             127.0.0.1/32            trust
            

    To tymczasowo wyłączy sprawdzanie hasła.

  3. Zrestartuj serwer PostgreSQL.
  4. Połącz się z bazą bez hasła:
    
    psql -U postgres
            
  5. Zmień hasło komendą:
    
    ALTER ROLE postgres PASSWORD 'new_password';
            
  6. Przywróć ustawienia pg_hba.conf i zrestartuj serwer.

Problem 2. Zły host albo port

Jeśli klient psql nie może się połączyć z serwerem, upewnij się, że podałeś dobry host i port w ustawieniach.

Jak rozpoznać problem?

Błąd połączenia może wyglądać tak:


could not connect to server: Connection refused
    Is the server running on host "127.0.0.1" and accepting
    TCP/IP connections on port 5432?

Rozwiązanie:

Sprawdź, czy serwer PostgreSQL działa:


systemctl status postgresql

(Linux) albo otwórz "Usługi" (Services) na Windows (Ctrl+Shift+Esc).

Jeśli serwer działa, sprawdź ustawienia w pg_hba.conf. Upewnij się, że linie połączeń dla localhosta (127.0.0.1) i twojego IP są poprawnie ustawione. Na przykład:


host    all             all             127.0.0.1/32            md5
host    all             all             192.168.1.100/32        md5

5. Ogólne tipy na rozwiązywanie problemów

  • Używaj logów PostgreSQL
    Logi — to twój najlepszy ziomek. Są w folderze z danymi PostgreSQL (np. /var/log/postgresql/ na Linuxie). Jak coś nie działa, zacznij od przejrzenia logów.
  • Sprawdzaj dokumentację
    PostgreSQL ma jedną z najlepszych dokumentacji ever. Jeśli trafiłeś na błąd, jest duża szansa, że rozwiązanie jest w oficjalnej dokumentacji: https://www.postgresql.org/docs/.
  • Korzystaj ze społeczności
    Jeśli utknąłeś, zajrzyj na Stack Overflow, ChatGPT albo fora PostgreSQL. Szansa na znalezienie gotowego rozwiązania jest spora.

P.S.

Ważne! Jeśli dalej nic nie działa — napisz do naszego supportu: pomożemy rozwiązać twój problem, a potem uzupełnimy ten artykuł.

2
Zadanie
SQL SELF, poziom 4, lekcja 1
Niedostępne
Sprawdzenie połączenia z serwerem PostgreSQL za pomocą zapytania SQL
Sprawdzenie połączenia z serwerem PostgreSQL za pomocą zapytania SQL
2
Zadanie
SQL SELF, poziom 4, lekcja 1
Niedostępne
Znajdź aktualny port serwera PostgreSQL
Znajdź aktualny port serwera PostgreSQL
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION