PostgreSQL ist ein beliebtes relationales Open-Source-Datenbankverwaltungssystem. Bekannt für seine Zuverlässigkeit, gewinnt es aufgrund seiner Robustheit, Flexibilität und Leistung an Popularität. PostgreSQL wird zur Verwaltung von Datenbanken und zahlreichen Web- und Analyseanwendungen verwendet. Zum Zeitpunkt der Erstellung dieses Artikels ist PostgreSQL 13 die neueste Version. Diese Version enthält erhebliche Verbesserungen des Indizierungs- und Suchsystems, die großen Datenbanken zugute kommen.
In diesem Beitrag zeigen wir Ihnen, wie Sie PostgreSQL unter Rocky Linux 8 installieren und sichern.
Voraussetzungen
- Ein Server, auf dem Rocky Linux 8 auf der Atlantic.Net Cloud Platform ausgeführt wird
- Ein auf Ihrem Server konfiguriertes Root-Passwort
Schritt 1 – Atlantic.Net Cloud-Server erstellen
Melden Sie sich zunächst bei Ihrem Atlantic.Net Cloud Server an. Erstellen Sie einen neuen Server und wählen Sie Rocky Linux 8 als Betriebssystem mit mindestens 2 GB RAM. Stellen Sie über SSH eine Verbindung zu Ihrem Cloud-Server her und melden Sie sich mit den oben auf der Seite hervorgehobenen Anmeldeinformationen an.
Sobald Sie sich bei Ihrem Server angemeldet haben, führen Sie den folgenden Befehl aus, um Ihr Basissystem mit den neuesten verfügbaren Paketen zu aktualisieren.
dnf update -y
Schritt 2 – PostgreSQL 13-Repository hinzufügen
dnf module list postgresql
Sie sollten sehen, dass nur PostgreSQL Version 10 verfügbar ist:
Rocky Linux 8 - AppStream Name Stream Profiles Summary postgresql 9.6 client, server [d] PostgreSQL server and client module postgresql 10 [d] client, server [d] PostgreSQL server and client module postgresql 12 client, server [d] PostgreSQL server and client module postgresql 13 client, server [d] PostgreSQL server and client module
Um die neueste PostgreSQL-Version zu installieren, müssen Sie das PostgreSQL-Repository auf Ihrem System installieren.
Sie können es mit dem folgenden Befehl installieren:
dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Sobald das Repo erstellt ist, können Sie mit dem nächsten Schritt fortfahren.
Schritt 3 – PostgreSQL 13 auf Rocky Linux 8 installieren
Aktualisieren Sie nun Ihr Repository mit dem folgenden Befehl:
dnf update -y
Deaktivieren Sie als Nächstes das standardmäßige PostgreSQL-Repository mit dem folgenden Befehl:
dnf -qy module disable postgresql
Installieren Sie als Nächstes die neueste Version von PostgreSQL, indem Sie den folgenden Befehl ausführen:
dnf install postgresql13 postgresql13-server
Sobald PostgreSQL 13 installiert ist, erhalten Sie die folgende Ausgabe:
Last metadata expiration check: 0:00:08 ago on Fri 22 Oct 2021 08:38:58 AM UTC. Dependencies resolved. =============================================================================================================================================== Package Architecture Version Repository Size =============================================================================================================================================== Installing: postgresql13 x86_64 13.4-1PGDG.rhel8 pgdg13 1.5 M postgresql13-server x86_64 13.4-1PGDG.rhel8 pgdg13 5.5 M Installing dependencies: postgresql13-libs x86_64 13.4-1PGDG.rhel8 pgdg13 414 k Transaction Summary =============================================================================================================================================== Install 3 Packages Total download size: 7.4 M Installed size: 31 M Is this ok [y/N]: y
Als nächstes initialisieren Sie die PostgreSQL-Datenbank mit dem folgenden Befehl:
/usr/pgsql-13/bin/postgresql-13-setup initdb
Beispielausgabe:
Initializing database ... OK
Starten Sie als Nächstes den PostgreSQL-Dienst und ermöglichen Sie ihm, beim Systemneustart mit dem folgenden Befehl zu starten:
systemctl start postgresql-13 systemctl enable postgresql-13
Sie können den Status von PostgreSQL mit dem folgenden Befehl überprüfen:
systemctl status postgresql-13
Sie sollten die folgende Ausgabe erhalten:
● postgresql-13.service - PostgreSQL 13 database server Loaded: loaded (/usr/lib/systemd/system/postgresql-13.service; disabled; vendor preset: disabled) Active: active (running) since Fri 2021-10-22 08:39:47 UTC; 7s ago Docs: https://www.postgresql.org/docs/13/static/ Process: 36412 ExecStartPre=/usr/pgsql-13/bin/postgresql-13-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS) Main PID: 36417 (postmaster) Tasks: 8 (limit: 11411) Memory: 16.8M CGroup: /system.slice/postgresql-13.service ├─36417 /usr/pgsql-13/bin/postmaster -D /var/lib/pgsql/13/data/ ├─36419 postgres: logger ├─36421 postgres: checkpointer ├─36422 postgres: background writer ├─36423 postgres: walwriter ├─36424 postgres: autovacuum launcher ├─36425 postgres: stats collector └─36426 postgres: logical replication launcher
ss -antpl | grep 5432
Sie erhalten die folgende Ausgabe:
LISTEN 0 128 127.0.0.1:5432 0.0.0.0:* users:(("postmaster",pid=36417,fd=7)) LISTEN 0 128 [::1]:5432 [::]:* users:(("postmaster",pid=36417,fd=6))
Schritt 4 – Legen Sie ein Passwort für den Postgres-Benutzer fest
Um ein Passwort festzulegen, melden Sie sich mit dem folgenden Befehl bei PostgreSQL an:
su - postgres
Legen Sie als Nächstes mit dem folgenden Befehl ein sicheres Passwort fest:
psql -c "alter user postgres with password 'securepassword'"
Verlassen Sie als Nächstes die PostgreSQL-Shell mit dem folgenden Befehl:
exit
Schritt 5 – PostgreSQL-Authentifizierungsmethode ändern
Sie können es ändern, indem Sie die Hauptkonfigurationsdatei von PostgreSQL bearbeiten:
nano /var/lib/pgsql/13/data/pg_hba.conf
Suchen Sie die folgende Zeile:
local all all peer
Und ersetzen Sie es durch die folgende Zeile:
local all all scram-sha-256
Speichern und schließen Sie die Datei und starten Sie dann den PostgreSQL-Dienst neu, um die Änderungen zu übernehmen.
systemctl restart postgresql-13
Schritt 6 – Erstellen Sie eine Datenbank und einen Benutzer in PostgreSQL
Melden Sie sich zunächst mit dem folgenden Befehl bei der PostgreSQL-Shell an:
sudo -u postgres psql
Sie erhalten die folgende Ausgabe:
could not change directory to "/root": Permission denied psql (13.4) Type "help" for help. postgres=#ein
Erstellen Sie als Nächstes einen neuen PostgreSQL-Benutzer namens user1 mit dem folgenden Befehl:
CREATE USER user1 WITH CREATEDB CREATEROLE PASSWORD 'passoword';
Um die PostgreSQL-Benutzer zu überprüfen, führen Sie Folgendes aus:
\du
Sie erhalten die folgende Ausgabe:
List of roles Role name | Attributes | Member of -----------+------------------------------------------------------------+----------- postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {} user1 | Create role, Create DB | {}
Um eine neue PostgreSQL-Datenbank mit dem Namen user1db zu erstellen, führen Sie Folgendes aus:
CREATE DATABASE user1db OWNER user1;
Um die PostgreSQL-Datenbanken zu überprüfen, führen Sie Folgendes aus:
\l
Sie erhalten die folgende Ausgabe:
List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres user1db | user1 | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
Schlussfolgerung
Herzliche Glückwünsche! Sie haben PostgreSQL erfolgreich auf Rocky Linux 8 installiert und gesichert. Aus Sicherheitsgründen wird immer empfohlen, die neueste Version von PostgreSQL in der Produktionsumgebung zu installieren. Probieren Sie VPS-Hosting von Atlantic.Net aus!