Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu: Skills Rozpocznij
Sekcja
Administracja Linux

Jak zainstalować PostgreSQL na Debian: Kompletny przewodnik krok po kroku

PostgreSQL to jeden z najpotężniejszych na świecie systemów zarządzania relacyjnymi bazami danych (RDBMS) o otwartym kodzie źródłowym. Znany ze swojej niezawodności, rozszerzalności i ścisłej zgodności z SQL, jest preferowanym silnikiem baz danych dla programistów, inżynierów danych i administratorów systemów obsługujących obciążenia produkcyjne. Niezależnie od tego, czy budujesz aplikację internetową, hurtownię danych czy backend API, PostgreSQL zapewnia wydajność i elastyczność, których potrzebujesz.

Ten kompleksowy przewodnik przeprowadzi Cię przez każdy etap instalacji i konfiguracji PostgreSQL w systemie opartym na Debianie — od wstępnej instalacji pakietów po konfigurację zdalnego dostępu i zarządzanie bazami danych. Jeśli uruchamiasz swoje obciążenia na planie VPS Hosting, ten przewodnik jest w pełni dostosowany do Twojego środowiska.

Wymagania wstępne

Zanim zaczniesz, upewnij się, że masz:

  • Serwer Debian 11 (Bullseye) lub Debian 12 (Bookworm)
  • Konto użytkownika z uprawnieniami sudo
  • Dostęp SSH do serwera
  • Stabilne połączenie internetowe

Krok 1: Aktualizacja listy pakietów systemu

Przed instalacją nowego oprogramowania najlepszą praktyką jest synchronizacja indeksu pakietów i aktualizacja przestarzałych pakietów. Zapewnia to kompatybilność i zmniejsza ryzyko konfliktów zależności.

Otwórz terminal lub połącz się z serwerem przez SSH i uruchom:

sudo apt update
sudo apt upgrade -y
    apt update odświeża lokalny indeks pakietów ze skonfigurowanych repozytoriów.
    apt upgrade instaluje najnowsze wersje wszystkich aktualnie zainstalowanych pakietów.
    
    Po zakończeniu aktualizacji system Debian jest gotowy do czystej instalacji PostgreSQL.
    Krok 2: Instalacja PostgreSQL na Debianie
    PostgreSQL jest dostępny bezpośrednio z oficjalnych repozytoriów Debiana, co sprawia, że instalacja jest prosta i niezawodna. Uruchom następujące polecenie:
    sudo apt install postgresql postgresql-contrib -y
    Oto co zapewnia każdy pakiet:
    
    
    
    
    Pakiet
    Opis
    
    
    
    
    postgresql
    Główny serwer baz danych PostgreSQL
    
    
    postgresql-contrib
    Dodatkowe narzędzia, rozszerzenia i utilities często używane wraz z PostgreSQL
    
    
    
    
    Proces instalacji automatycznie tworzy użytkownika systemowego o nazwie postgres, inicjalizuje domyślny klaster baz danych i rejestruje PostgreSQL jako usługę systemową.
    Krok 3: Weryfikacja instalacji PostgreSQL
    Po zakończeniu instalacji PostgreSQL powinien uruchomić się automatycznie. Sprawdź, czy usługa jest aktywna i działa:
    sudo systemctl status postgresql
    Powinieneś zobaczyć dane wyjściowe podobne do:
    ● postgresql.service - PostgreSQL RDBMS
         Loaded: loaded (/lib/systemd/system/postgresql.service; enabled)
         Active: active (running) since ...
    Jeśli PostgreSQL nie działa, uruchom go ręcznie:
    sudo systemctl start postgresql
    Aby upewnić się, że PostgreSQL uruchamia się automatycznie przy każdym restarcie serwera:
    sudo systemctl enable postgresql
    Jest to szczególnie ważne na serwerach w chmurze i w środowiskach VPS Hosting, gdzie restarty mogą następować podczas okien konserwacyjnych.
    Krok 4: Podstawowa konfiguracja PostgreSQL
    PostgreSQL używa modelu uwierzytelniania opartego na rolach. Po instalacji tworzona jest domyślna rola superużytkownika o nazwie postgres. Ta sekcja opisuje, jak uzyskać dostęp do powłoki PostgreSQL, tworzyć role i konfigurować bazy danych.
    4.1 Przełączenie na użytkownika systemowego PostgreSQL
    Przełącz się na użytkownika systemowego postgres, aby uzyskać dostęp administracyjny:
    sudo -i -u postgres
    Teraz otwórz interaktywny terminal PostgreSQL:
    psql
    Zostaniesz przywitany promptem PostgreSQL:
    psql (15.x)
    Type "help" for help.
    
    postgres=#
    Stąd możesz wykonywać polecenia SQL, zarządzać rolami i administrować bazami danych.
    4.2 Tworzenie nowej roli PostgreSQL (użytkownika)
    PostgreSQL zarządza dostępem poprzez role. Aby utworzyć nową rolę z bezpiecznym hasłem:
    CREATE USER your_username WITH PASSWORD 'your_strong_password';
    Zastąp your_username i your_strong_password żądanymi danymi uwierzytelniającymi.
    Aby nadać tej roli uprawnienia superużytkownika (używaj ostrożnie w środowisku produkcyjnym):
    ALTER USER your_username WITH SUPERUSER;
    Po zakończeniu wyjdź z promptu psql:
    q
    4.3 Tworzenie nowej bazy danych
    Będąc nadal zalogowanym jako użytkownik systemowy postgres, utwórz nową bazę danych:
    createdb your_database_name
    Aby przypisać własność bazy danych do właśnie utworzonego użytkownika:
    psql
    ALTER DATABASE your_database_name OWNER TO your_username;
    q
    Zapewnia to, że your_username ma pełną kontrolę nad your_database_name bez konieczności posiadania uprawnień superużytkownika do rutynowych operacji.
    Krok 5: Konfiguracja zdalnego dostępu (opcjonalnie)
    Domyślnie PostgreSQL akceptuje połączenia tylko z localhost (127.0.0.1). Jeśli Twój serwer aplikacji lub maszyna deweloperska jest hostowana oddzielnie — na przykład na planie Dedicated Servers — będziesz musiał włączyć zdalny dostęp.
    > ⚠️ Ostrzeżenie dotyczące bezpieczeństwa: Otwarcie PostgreSQL na zdalne połączenia zwiększa powierzchnię ataku. Zawsze używaj silnych haseł, ogranicz dostęp do znanych zakresów IP i rozważ użycie połączenia szyfrowanego SSL.
    5.1 Modyfikacja pliku konfiguracyjnego PostgreSQL
    Otwórz główny plik konfiguracyjny PostgreSQL. Zastąp 15 numerem zainstalowanej wersji:
    sudo nano /etc/postgresql/15/main/postgresql.conf
    Znajdź następującą linię:
    #listen_addresses = 'localhost'
    Odkomentuj ją i zmień wartość, aby akceptować połączenia na wszystkich interfejsach:
    listen_addresses = '*'
    Aby zamiast tego ograniczyć dostęp do określonego adresu IP:
    listen_addresses = '192.168.1.100'
    Zapisz plik i wyjdź (Ctrl+X, następnie Y, następnie Enter).
    5.2 Modyfikacja pliku uwierzytelniania klientów
    Następnie edytuj plik pg_hba.conf, aby określić, które hosty mają prawo do połączenia:
    sudo nano /etc/postgresql/15/main/pg_hba.conf
    Dodaj następującą linię na końcu pliku, aby zezwolić na połączenia z dowolnego adresu IP przy użyciu uwierzytelniania hasłem:
    host    all             all             0.0.0.0/0               md5
    Dla większego bezpieczeństwa zastąp 0.0.0.0/0 określonym zakresem IP, na przykład:
    host    all             all             203.0.113.0/24          md5
    Zapisz i wyjdź z pliku.
    5.3 Restart PostgreSQL w celu zastosowania zmian
    sudo systemctl restart postgresql
    5.4 Otwarcie portu zapory sieciowej (jeśli dotyczy)
    Jeśli Twój serwer używa ufw, zezwól na ruch PostgreSQL na porcie 5432:
    sudo ufw allow 5432/tcp
    sudo ufw reload
    Krok 6: Zdalne połączenie z PostgreSQL
    Po skonfigurowaniu zdalnego dostępu możesz połączyć się z serwerem PostgreSQL z dowolnej zdalnej maszyny, na której zainstalowany jest klient PostgreSQL.
    Zainstaluj klienta PostgreSQL na zdalnej maszynie:
    sudo apt install postgresql-client -y
    Połącz się ze zdalnym serwerem PostgreSQL:
    psql -h your_server_ip -U your_username -d your_database_name
    Zastąp symbole zastępcze w następujący sposób:
    
    
    
    
    Symbol zastępczy
    Opis
    
    
    
    
    your_server_ip
    Publiczny adres IP Twojego serwera PostgreSQL
    
    
    your_username
    Utworzona przez Ciebie rola PostgreSQL
    
    
    your_database_name
    Nazwa docelowej bazy danych
    
    
    
    
    Zostaniesz poproszony o podanie hasła ustawionego podczas tworzenia roli.
    Krok 7: Zarządzanie bazami danych PostgreSQL
    Po zainstalowaniu i skonfigurowaniu PostgreSQL możesz zarządzać swoimi bazami danych za pomocą powłoki psql i wbudowanych narzędzi wiersza poleceń.
    7.1 Wyświetlanie wszystkich baz danych
    W prompcie psql uruchom:
    l
    Wyświetla to wszystkie bazy danych na serwerze wraz z ich właścicielami, kodowaniem i uprawnieniami dostępu.
    7.2 Przełączanie na inną bazę danych
    c your_database_name
    7.3 Wyświetlanie wszystkich tabel w bieżącej bazie danych
    dt
    7.4 Tworzenie kopii zapasowej bazy danych PostgreSQL
    Użyj narzędzia pg_dump, aby utworzyć logiczną kopię zapasową:
    pg_dump your_database_name > your_database_name_backup.sql
    Dla skompresowanej kopii zapasowej (zalecane dla dużych baz danych):
    pg_dump -Fc your_database_name > your_database_name_backup.dump
    7.5 Przywracanie bazy danych PostgreSQL
    Aby przywrócić z zwykłej kopii zapasowej SQL:
    psql your_database_name < your_database_name_backup.sql
    Aby przywrócić ze skompresowanej kopii zapasowej:
    pg_restore -d your_database_name your_database_name_backup.dump
    Regularne tworzenie kopii zapasowych jest kluczowym elementem każdej strategii produkcyjnej bazy danych. Jeśli potrzebujesz zarządzanego środowiska hostingowego z automatyczną obsługą kopii zapasowych, rozważ Dedicated Servers AlexHost dla wdrożeń baz danych o wysokiej dostępności.
    Krok 8: Zabezpieczanie instalacji PostgreSQL
    Wzmocnienie bezpieczeństwa jest niezbędne dla każdej bazy danych wystawionej na działanie internetu lub środowisk współdzielonego hostingu. Oto kluczowe najlepsze praktyki:
    Używanie SSL/TLS dla szyfrowanych połączeń
    PostgreSQL obsługuje natywne połączenia SSL. Włącz SSL w postgresql.conf:
    ssl = on
    Będziesz potrzebować ważnego certyfikatu SSL. AlexHost oferuje SSL Certificates do zabezpieczenia komunikacji serwera.
    Ograniczanie uprawnień ról
    Stosuj zasadę najmniejszych uprawnień. Nadawaj rolom tylko te uprawnienia, których faktycznie potrzebują:
    GRANT CONNECT ON DATABASE your_database_name TO your_username;
    GRANT USAGE ON SCHEMA public TO your_username;
    GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO your_username;
    Regularna rotacja haseł
    Okresowo aktualizuj hasła ról PostgreSQL:
    ALTER USER your_username WITH PASSWORD 'new_strong_password';
    Monitorowanie logów PostgreSQL
    Logi PostgreSQL znajdują się w:
    /var/log/postgresql/
    Regularnie przeglądaj te logi, aby wykrywać nieautoryzowane próby dostępu lub anomalie wydajnościowe.
    Wybór odpowiedniego środowiska hostingowego dla PostgreSQL
    Wydajność bazy danych PostgreSQL jest bezpośrednio związana z jakością infrastruktury bazowej. Oto krótkie porównanie opcji hostingowych AlexHost dla obciążeń bazodanowych:
    
    
    
    
    Typ hostingu
    Najlepszy dla
    Kluczowa zaleta
    
    
    
    
    VPS Hosting
    Małych i średnich aplikacji
    Dedykowane zasoby, pełny dostęp root
    
    
    Dedicated Servers
    Baz danych produkcyjnych o dużym ruchu
    Maksymalna wydajność i izolacja
    
    
    GPU Hosting
    Obciążeń AI/ML z PostgreSQL + pgvector
    Przetwarzanie danych przyspieszone przez GPU
    
    
    
    
    Dla większości aplikacji internetowych i środowisk deweloperskich VPS z pamięcią masową NVMe SSD zapewnia doskonałą równowagę między wydajnością a efektywnością kosztową.
    Podsumowanie
    Instalacja PostgreSQL na Debianie to prosty proces, który zajmuje tylko kilka minut, gdy postępujesz zgodnie z właściwymi krokami. W tym przewodniku nauczyłeś się, jak:
    
    Zaktualizować system Debian i zainstalować PostgreSQL z oficjalnych repozytoriów
    Sprawdzić status usługi i włączyć automatyczne uruchamianie
    Tworzyć role i bazy danych z właściwą własnością
    Bezpiecznie konfigurować zdalny dostęp przy użyciu postgresql.conf i pg_hba.conf
  • Łączyć się z PostgreSQL ze zdalnej maszyny
  • Zarządzać bazami danych za pomocą poleceń psql i narzędzi do tworzenia kopii zapasowych
  • Stosować podstawowe środki wzmocnienia bezpieczeństwa

Niezależnie od tego, czy wdrażasz małe środowisko deweloperskie, czy produkcyjny serwer baz danych, infrastruktura AlexHost zapewnia niezawodność, szybkość i bezpieczeństwo, których wymagają Twoje obciążenia PostgreSQL. Zapoznaj się z planami VPS Hosting, aby już dziś rozpocząć pracę w w pełni zarządzanym, wysokowydajnym środowisku.