PostgreSQL 14 to system zarządzania relacyjnymi bazami danych typu open source, znany ze swojej solidności, skalowalności i obszernego zestawu funkcji. Jedną z kluczowych funkcji wprowadzonych w PostgreSQL 14 była możliwość obsługi sortowania przyrostowego, co znacznie poprawiło wydajność zapytań dla określonych obciążeń. W tej wersji udoskonalono także przetwarzanie równoległe, odkurzanie i przetwarzanie JSON, co czyni ją dobrym wyborem dla środowisk korporacyjnych i programistycznych. Chociaż najnowsze wydanie ma kilka wersji, PostgreSQL 14 pozostaje niezawodną i szeroko obsługiwaną opcją.
Aby zainstalować PostgreSQL 14 na Fedorze 40 lub 39 przy użyciu terminala wiersza poleceń, możesz zaimportować i zainstalować bezpośrednio z kompilacji PostgreSQL RPM. Ta metoda gwarantuje, że masz najnowszą wersję i ułatwia przyszłe aktualizacje.
Zaktualizuj Fedorę przed instalacją PostgreSQL 14
Aby rozpocząć, zaktualizuj swój system Fedora, aby upewnić się, że wszystkie pakiety są aktualne. Ten krok pomaga zapobiec potencjalnym konfliktom podczas instalacji PostgreSQL. Wykonaj poniższe polecenie:
sudo dnf update --refresh
Importuj repozytorium kluczy PostgreSQL RPM GPG
Zacznij od zaimportowania repozytorium PostgreSQL. Ta czynność gwarantuje dostęp do najnowszych wersji PostgreSQL. Wybierz i zaimportuj repozytorium odpowiadające Twojej wersji Fedory Linux.
Importuj PostgreSQL 14
Uwaga: Pamiętaj, aby zaimportować poprawną wersję dla wersji dystrybucyjnej Fedory:
W Fedorze 40 użyj tego polecenia:
sudo dnf install http://apt.postgresql.org/pub/repos/yum/reporpms/F-40-x86_64/pgdg-fedora-repo-latest.noarch.rpm
W Fedorze 39 polecenie jest nieco inne:
sudo dnf install http://apt.postgresql.org/pub/repos/yum/reporpms/F-39-x86_64/pgdg-fedora-repo-latest.noarch.rpm
Wyłącz domyślny moduł PostgreSQL (jeśli dotyczy)
Domyślne repozytoria Fedory często zawierają moduł PostgreSQL. Aby nadać priorytet instalacji z repozytorium PostgreSQL, zaleca się wyłączenie tego modułu domyślnego. Aby to zrobić, użyj następującego polecenia:
sudo dnf -qy module disable postgresql
Zakończ instalację PostgreSQL 14
Kontynuuj instalację PostgreSQL 14
.Użyj tego polecenia, aby zainstalować serwer PostgreSQL 14 i jego dokumentację:
sudo dnf install postgresql14-server postgresql14-docs -y
Dodatkowo możesz zainstalować pakiet programistyczny w następujący sposób.
sudo dnf install postgresql14-devel
Na koniec możesz zainstalować kilka często używanych dodatkowych modułów, plików binarnych i bibliotek.
sudo dnf install postgresql14-libs postgresql14-odbc postgresql14-plperl postgresql14-plpython3 postgresql14-pltcl postgresql14-tcl postgresql14-contrib postgresql14-llvmjit
Zainicjuj bazę danych PostgreSQL 14
Po zainstalowaniu należy uruchomić następujące polecenie, aby zainicjować bazę danych; niezastosowanie się do tego uniemożliwi działanie PostgreSQL.
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
Włącz usługę systemową PostgreSQL 14
Domyślnie PostgreSQL nie jest aktywowany. Użyj następującego polecenia, aby natychmiast uruchomić usługę i podczas uruchamiania systemu.
sudo systemctl enable postgresql-14 --now
Sprawdź instalację PostgreSQL 14
Następnie sprawdź status, aby upewnić się, że oprogramowanie zostało zainstalowane i aktywowane bez błędów, używając następującego polecenia.
systemctl status postgresql-14
Polecenia usług systemowych dla PostgreSQL 14
Zarządzanie usługą PostgreSQL 14
Serwer bazy danych PostgreSQL działa jako usługa systemowa o nazwie „postgresql-14” w Fedorze. Administratorzy systemu mogą zarządzać tą usługą za pomocą zestawu poleceń systemowych niezbędnych do rutynowej konserwacji i rozwiązywania problemów.
Zatrzymywanie serwera PostgreSQL 14
Aby zatrzymać usługę PostgreSQL, na przykład w celu konserwacji lub zmian w konfiguracji, użyj tego polecenia:
sudo systemctl stop postgresql-14
Uruchamianie serwera PostgreSQL 14
Aby uruchomić usługę PostgreSQL, zwłaszcza po zatrzymaniu lub początkowej instalacji, użyj następującego polecenia:
sudo systemctl start postgresql-14
Ponowne uruchamianie serwera PostgreSQL 14
Polecenie restartu jest przydatne, jeśli chcesz zastosować nową konfigurację lub zresetować usługę PostgreSQL. Zatrzymuje się, a następnie uruchamia usługę w jednej akcji:
sudo systemctl restart postgresql-14
Ponowne ładowanie serwera PostgreSQL 14
Polecenie reload idealnie nadaje się do stosowania zmian konfiguracyjnych bez zatrzymywania bazy danych. Odświeża usługę bez przerywania pracy bazy danych:
sudo systemctl reload postgresql-14
Sprawdzanie stanu usługi PostgreSQL 14
Aby sprawdzić status operacyjny usługi PostgreSQL, użyj tego polecenia. Dostarcza informacji o stanie usługi, w tym o tym, czy jest ona aktywna, bezczynna lub występują problemy:
systemctl status postgresql-14
Skonfiguruj PostgreSQL 14
Przejście na konto Postgres 14
Dostęp do konta Postgres 14
Podczas instalacji PostgreSQL automatycznie tworzone jest konto użytkownika o nazwie „postgres”. To konto jest powiązane z domyślną rolą Postgres, która posiada uprawnienia superużytkownika. Aby uzyskać dostęp do bazy danych PostgreSQL, przełącz się na konto „postgres” za pomocą polecenia:
sudo -i -u postgres
Wejście do monitu PostgreSQL 14
Po przełączeniu na użytkownika „postgres” uzyskaj bezpośredni dostęp do monitu PostgreSQL, wpisując psql. Po pomyślnym połączeniu komunikat terminala zmienia się na postgres=#, wskazując aktywne połączenie z bazą danych.
Aby wyjść z bazy danych PostgreSQL, po prostu wpisz:
psql
Alternatywna metoda dostępu do PostgreSQL 14
Używanie Sudo do bezpośredniego dostępu
Alternatywnie możesz wchodzić w interakcję z bazą danych PostgreSQL bez przełączania kont, korzystając z:
exit
Alternatywa dla zmiany konta Postgres
Alternatywnym sposobem interakcji z bazą danych Postgres bez zmiany kont użytkowników jest użycie polecenia sudo w celu bezpośredniego połączenia. Możesz to zrobić wpisując:
sudo -u postgres psql
To polecenie jest skuteczne w przypadku szybkich interakcji z bazą danych, ponieważ omija dodatkowe polecenia terminala.
Aby zakończyć, podobnie jak w przypadku pierwszej metody, wpisz polecenie exit.
exit
Utwórz użytkownika i bazę danych za pomocą PostgreSQL 14
Tworzenie nowej roli użytkownika
Tylko superużytkownicy i role z uprawnieniem tworzenia ról mogą tworzyć nowe role. Aby utworzyć użytkownika użyj polecenia:
sudo su - postgres -c "createuser <name>"
Zastępować z żądaną nazwą użytkownika.
Tworzenie nowej bazy danych
Następnie utwórz bazę danych PostgreSQL dla nowo utworzonego użytkownika:
sudo su - postgres -c "createdb <namedb>"
Zastępować z żądaną nazwą bazy danych.
Nadawanie uprawnień
Aby nadać uprawnienia nowemu użytkownikowi w nowej bazie danych, najpierw połącz się z bazą danych PostgreSQL jako superużytkownik:
sudo -u postgres psql
Następnie nadaj nowemu użytkownikowi wszystkie uprawnienia:
GRANT ALL PRIVILEGES ON DATABASE <usernamedb> TO <name>;
Zastępować z nazwą bazy danych i z nazwą użytkownika. Aby wyjść, wpisz exit.
exit
Skonfiguruj zaporę sieciową dla PostgreSQL 14
Ustanawianie reguł zapory ogniowej dla PostgreSQL 14
Zabezpieczanie PostgreSQL to coś więcej niż tylko instalacja i uruchomienie usługi; skuteczne skonfigurowanie kontroli dostępu do sieci ma kluczowe znaczenie. Zabezpiecza to bazę danych i gwarantuje, że dociera do niej tylko legalny ruch. Przejdziemy przez konfigurację firewalld, dynamicznego menedżera zapory ogniowej w Fedorze, aby zabezpieczyć PostgreSQL.
Tworzenie strefy zapory ogniowej dla PostgreSQL
Najpierw utwórz dedykowaną strefę w zaporze ogniowej dla PostgreSQL. Takie podejście pozwala na bardziej szczegółową kontrolę i przejrzystość w zarządzaniu regułami specyficznymi dla PostgreSQL:
sudo firewall-cmd --permanent --new-zone=postgres
To polecenie ustanawia strefę „postgres”, izolując reguły zapory sieciowej związane z PostgreSQL w celu łatwiejszego zarządzania.
Ograniczanie dostępu do znanych adresów IP
Zezwalanie na dostęp z jednego adresu IP
W scenariuszach, w których tylko jeden klient lub serwer powinien uzyskać dostęp do PostgreSQL:
sudo firewall-cmd --permanent --zone=postgres --add-source=1.2.3.4
Zastąp 1.2.3.4 konkretnym adresem IP wymagającym dostępu do bazy danych.
Zezwalanie na podsieć
W środowiskach takich jak sieci korporacyjne może być konieczne zezwolenie na całą podsieć:
sudo firewall-cmd --permanent --zone=postgres --add-source=192.168.1.0/24
Tutaj 192.168.1.0/24 reprezentuje podsieć. Dostosuj tę wartość, aby dopasować ją do żądanego zasięgu sieci.
Przyznawanie dostępu do wielu określonych adresów IP
W scenariuszach z kilkoma znanymi adresami IP wymagającymi dostępu:
sudo firewall-cmd --permanent --zone=postgres --add-source=1.2.3.4
sudo firewall-cmd --permanent --zone=postgres --add-source=1.2.3.5
Powtórz to polecenie dla każdego adresu IP.
Zarządzanie dostępem do portów dla PostgreSQL 14
Konfigurowanie domyślnego portu PostgreSQL
W przypadku instalacji standardowych przy użyciu portu domyślnego:
sudo firewall-cmd --permanent --zone=postgres --add-port=5432/tcp
Dostosowywanie konfiguracji portu
Jeśli PostgreSQL działa na niestandardowym porcie (na przykład 5433):
sudo firewall-cmd --permanent --zone=postgres --add-port=5433/tcp
Zmień numer portu zgodnie z konkretną konfiguracją PostgreSQL.
Wdrażanie i weryfikacja nowych reguł zapory ogniowej
Stosowanie zmian
Aby aktywować nowe reguły, załaduj ponownie zaporę sieciową:
sudo firewall-cmd --reload
Ten krok gwarantuje, że nowe konfiguracje zaczną obowiązywać natychmiast.
Sprawdzanie konfiguracji
Po konfiguracji warto przejrzeć reguły ustawione dla strefy „postgres”:
sudo firewall-cmd --list-all --zone=postgres
Polecenie to wyświetla wszystkie aktywne reguły w strefie „postgres”, umożliwiając weryfikację pliku setup.exp
Konfiguracja zdalnego dostępu dla PostgreSQL 14
Konfigurowanie interfejsów nasłuchujących dla zdalnego dostępu
Modyfikowanie konfiguracji PostgreSQL
Aby umożliwić zdalny dostęp do PostgreSQL, konieczne jest dostosowanie ustawień interfejsu w pliku postgresql.conf. Ten proces umożliwia PostgreSQL akceptowanie połączeń z różnych źródeł.
Upewnij się, że ustawienia zapory FirewallD umożliwiają zdalny dostęp, zgodnie z opisem w poprzednich sekcjach.
Dostęp do pliku konfiguracyjnego
Aby zmodyfikować konfigurację PostgreSQL 14, użyj edytora tekstu nano:
sudo nano /var/lib/pgsql/14/data/postgresql.conf
Edytowanie adresu słuchania
W sekcji „Ustawienia połączenia” zmień adresy słuchaczy z „localhost” zgodnie ze swoimi wymaganiami:
- Słuchaj na wszystkich interfejsach: Aby akceptować połączenia z dowolnego źródła, ustaw adresy słuchaczy na „*”.
listen_addresses = '*'
- Nasłuchuj na określonym interfejsie: Określ adres IP, aby ograniczyć połączenia z określonym interfejsem.
listen_addresses = '192.168.1.100'
Po edycji zapisz plik (Ctrl + O, następnie Enter) i wyjdź (Ctrl + X).
Ponowne uruchamianie usługi PostgreSQL 14
Zastosuj zmiany, uruchamiając ponownie usługę PostgreSQL:
sudo systemctl restart postgresql-14
Potwierdzanie portów nasłuchowych
Użyj narzędzia ss, aby sprawdzić, czy PostgreSQL nasłuchuje na określonych portach:
ss -nlt | grep 5432
Jeśli się powiedzie, powinieneś zobaczyć porty w porcie terminala.
Zaawansowane ustawienia połączenia zdalnego w pliku pg_hba.conf
Dostosowywanie dostępu w pliku pg_hba.conf
Aby zapewnić precyzyjną kontrolę nad połączeniami zdalnymi, plik pg_hba.conf oferuje różne opcje dostosowywania.
Edycja pg_hba.conf
Otwórz plik pg_hba.conf:
sudo nano /var/lib/pgsql/14/data/pg_hba.conf
Konfigurowanie reguł dostępu zdalnego
Zezwalanie na określonych użytkowników i bazy danych
Aby ograniczyć dostęp do konkretnego użytkownika i bazy danych z określonego adresu IP:
host mydatabase myuser 192.168.1.100/32 md5
Zezwalanie na podsieć
Aby uzyskać szerszy dostęp, np. całą podsieć:
hostuj wszystkie wszystkie 192.168.1.0/24 md5
Używanie różnych metod uwierzytelniania
Wybierz metodę uwierzytelniania odpowiednią dla Twojego środowiska. W przypadku uwierzytelniania opartego na haśle:
hostuj wszystkie wszystkie 0.0.0.0/0 md5
W przypadku uwierzytelniania zaufania (zwróć uwagę na zagrożenia bezpieczeństwa):
hostuj wszystkie wszystkie zaufanie 0.0.0.0/0
Po skonfigurowaniu żądanych reguł zapisz i wyjdź z edytora.
Stosowanie i weryfikacja zmian
Uruchom ponownie PostgreSQL, aby zaimplementować nowe konfiguracje:
sudo systemctl restart postgresql-14
Sprawdź skuteczne ustawienia w pg_hba.conf, używając:
cat /var/lib/pgsql/14/data/pg_hba.conf
Skonfiguruj SELinux dla PostgreSQL 14
Podczas konfigurowania PostgreSQL 14 w Fedorze istotne jest prawidłowe skonfigurowanie SELinux (Linux ze zwiększonym poziomem bezpieczeństwa). SELinux dodaje warstwę bezpieczeństwa poprzez egzekwowanie zasad kontroli dostępu. Błędna konfiguracja może prowadzić do typowych problemów, takich jak odmowa dostępu lub zakłócenia usług.
Ustawianie SELinux w tryb zezwalający w celu rozwiązywania problemów
Tymczasowe dostosowanie trybu SELinux
Jeśli napotkasz problemy z uruchomieniem lub poprawnym działaniem PostgreSQL, rozważ tymczasowe ustawienie SELinux w tryb „Permissive”. Ten tryb umożliwia operacje, które zostałyby zablokowane w trybie „Wymuszanie”, ale rejestruje je w celu sprawdzenia:
sudo setenforce 0
Monitorowanie dzienników odmów AVC
Sprawdź dzienniki SELinux pod kątem odmów AVC (Access Vector Cache):
sudo restorecon -Rv /var/lib/pgsql/14/data/
To polecenie pomaga zidentyfikować zasady SELinux uniemożliwiające prawidłowe działanie PostgreSQL.
Konfigurowanie zasad SELinux dla PostgreSQL 14
Przywracanie domyślnego kontekstu SELinux
Aby upewnić się, że pliki mają poprawny kontekst SELinux, użyj polecenia Restorecon. Nieprawidłowe konteksty w katalogach lub plikach PostgreSQL mogą powodować problemy z dostępem:
sudo setsebool -P postgresql_can_rnetwork 1
To polecenie włącza wartość logiczną postgresql_can_rnetwork, umożliwiając połączenia sieciowe.
Zaawansowana konfiguracja SELinux
Dostosowywanie zasad SELinux
W bardziej złożonych konfiguracjach, na przykład gdy PostgreSQL współdziała z innymi usługami lub niestandardowymi portami, konieczne może być utworzenie niestandardowych zasad SELinux. Skorzystaj z narzędzia audyt2allow, aby wygenerować niestandardowe moduły zasad w oparciu o konkretne potrzeby.
Stosowanie zasad niestandardowych
Po utworzeniu niestandardowych polityk zastosuj je za pomocą:
sudo semodule -i my_postgresql.pp
Zastąp my_postgresql.pp nazwą pliku zasad.
Weryfikacja ustawień SELinux
Sprawdzanie statusu SELinuksa
Potwierdź status SELinux, aby upewnić się, że jest poprawnie ustawiony dla Twojej instalacji PostgreSQL:
sestatus
Sprawdzanie kontekstów plików
Sprawdź, czy pliki i katalogi powiązane z PostgreSQL mają odpowiednie konteksty SELinux:
ls -Z /var/lib/pgsql/14/data/
Wniosek
Po pomyślnym zainstalowaniu PostgreSQL 14 w systemie Fedora możesz wykorzystać jego zaawansowane funkcje i solidną wydajność do potrzeb swoich baz danych. Regularnie sprawdzaj dostępność aktualizacji i przyszłych uaktualnień kompilacji PostgreSQL RPM, aby zapewnić aktualność systemu.
Aby uzyskać więcej informacji na temat korzystania z PostgreSQL, odwiedź urzędnika dokumentacja.