Jak zainstalować PostgreSQL 14 na Fedorze 40 lub 39 Linux

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
Plik konfiguracyjny pg_hba dla PostgreSQL 14 w Fedorze Linux
Przykładowy zrzut ekranu pliku konfiguracyjnego pg_hba dla PostgreSQL 14 w Fedorze Linux
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.

Joshua James
Chodź za mną
Najnowsze posty autorstwa Joshua James (widzieć wszystko)

Dodaj komentarz