PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So installieren Sie PostgreSQL 12 auf Ubuntu 20.04 DigitalOcean

PostgreSQL-Funktionen und Anwendungsfälle

PostgreSQL ist ein objektrelationales Open-Source-Datenbankmanagementsystem (DBMS). Es ist ein fortschrittliches Datenbankverwaltungs- und Analysesystem, das hauptsächlich für E-Commerce-Plattformen, Zahlungstransaktionen und verschiedene Data-Warehousing-Lösungen verwendet wird. Es gibt es seit über 30 Jahren und wird jedes Jahr regelmäßig aktualisiert, unterstützt verschiedene SQL-Funktionen wie Trigger, benutzerdefinierte Typen und Funktionen, Unterabfragen usw.

PostgreSQL ist eine der fortschrittlichsten Open-Source-Datenbanken der Welt. Es eignet sich für mehrere Produktions- und Entwicklungsanwendungsfälle. Es bietet zahlreiche Vorteile wie verbesserte Partitionierung und Abfrageleistung (insbesondere bei großen Datensätzen), B-Tree-Verbesserungen für eine optimale Speicherplatznutzung, mehrspaltige MCV-Statistiken (MCV), allgemeine Tabellenausdrücke mit Abfrage-Inlining und Prüfsummenkontrolle.

Ein paar Worte zu Ubuntu 20.04 auf DigitalOcean

Ubuntu ist ein beliebtes Open-Source-Desktop-Betriebssystem. Ubuntu 20.04 enthält zahlreiche hochmoderne Funktionen, wie z. B. ein Tool zum Verwalten von ZFS-Snapshots, einen großen Kernel-Bump und Sicherheitsverbesserungen. Die Cloud-Plattform von DigitalOcean bietet eine robuste Infrastruktur und globale Verfügbarkeit, um Anwendungen in der Cloud zu entwickeln, zu verwalten und zu skalieren. Mit seinen Rechen-, Speicher-, Datenbank- und Netzwerkprodukten können Entwickler Web- und mobile Anwendungen, Streaming-Dienste, Spiele, SaaS-Lösungen und mehr erstellen. Mit Funktionen wie Shared Private Networking, Ein-Klick-DevOps-Tools und SSD-Festplatten ist DigitalOcean eine flexible, sichere und einfache Wahl für unternehmenskritische Lösungen.

Dieses Tutorial enthält detaillierte Anweisungen zur Installation von PostgreSQL auf DigitalOcean Ubuntu 20.04. Fangen wir ohne weiteres an!

Möchten Sie PostgreSQL mit nur wenigen Klicks automatisch einrichten?

Erfahren Sie mehr darüber, wie ScaleGrid Ihnen dabei helfen kann, PostgreSQL in wenigen Minuten auf DigitalOcean bereitzustellen, und lassen Sie uns den gesamten Einrichtungs-, Konfigurations- und Installationsprozess abschließen! Sehen Sie sich unsere PostgreSQL auf DigitalOcean-Seite an, um zu sehen, wie Sie sich mit ScaleGrid mehr auf die Entwicklung Ihres Produkts und weniger auf die Verwaltung von Datenbanken konzentrieren können. Oder folgen Sie einfach unserer einfachen Anleitung für die ersten Schritte mit PostgreSQL auf DigitalOcean mit ScaleGrid und testen Sie es selbst mit unserer kostenlosen 30-Tage-Testversion!

Voraussetzungen für die Installation von PostgreSQL

Bevor wir uns mit der eigentlichen Installation von PostgreSQL 12 auf DigitalOcean Ubuntu 20.04 befassen, müssen Sie sicherstellen, dass Ihr System die folgenden Voraussetzungen erfüllt.

  • Der Server sollte mindestens eine einfache UFW-Firewall haben, um sicherzustellen, dass nur Verbindungen zu bestimmten Diensten erlaubt sind.
  • Das System sollte für eine neue Serverinstanz aktualisiert und neu gestartet werden. Verwenden Sie dazu die folgenden Befehle:
    • sudo apt update && sudo apt upgrade –y
    • sudo reboot

Installation von PostgreSQL auf Ubuntu 20.04 DigitalOcean

Sie können PostgreSQL 12 mit den offiziellen/Standard-Repositories von Ubuntu 20.04 mit dem apt-Paketverwaltungssystem installieren. Zuvor sollten Sie den lokalen Paketindex Ihres Servers bereits aktualisiert haben (siehe Voraussetzungen oben).

Das Repository enthält verschiedene Pakete (einschließlich Add-Ons von Drittanbietern), wie zum Beispiel:

  • postgresql-client
  • postgresql
  • libpq-dev
  • postgresql-server-dev
  • pgadmin-Pakete

Installieren Sie dann das vollständige PostgreSQL 12-Paket zusammen mit dem postgresql-contrib-Modul, das zusätzliche Dienstprogramme und Funktionen bereitstellt. Dies kann durch Ausführen des folgenden Befehls installiert werden:

sudo apt install postgresql postgresql-contrib –y

Starten Sie dann den PostgreSQL-Dienst beim Systemneustart, indem Sie den folgenden Befehl ausführen:

sudo systemctl start postgresql

Um den PostgreSQL-Dienst beim Systemstart automatisch zu starten, führen Sie Folgendes aus:

sudo systemctl enable postgresql

Überprüfen Sie, ob der PostgreSQL-Dienst wie erwartet ausgeführt wird, indem Sie systemctl status postgresql:

ausführen

sudo systemctl status postgresql

Dies sollte den Status des PostgreSQL-Dienstes zurückgeben und aktiv anzeigen, ähnlich wie im Screenshot unten.

Anpassen der PostgreSQL-Initialisierung

Nach der Installation kann mit Hilfe des Befehls initdb ein Datenbank-Cluster erstellt werden. Der initdb-Befehl muss innerhalb des Datenbankbenutzers ausgeführt werden und nicht vom Root-Benutzer. Der Root-Benutzer kann ein leeres Verzeichnis erstellen, das vom Postgres-Benutzer geändert werden kann (Befehl „Eigentümer ändern“). Dieses Verzeichnis enthält die Daten als Vorlage, die standardmäßig in alle Datenbanken kopiert werden. Vom Postgres-Benutzer kann der folgende Befehl mit der entsprechenden Option und dem Verzeichnisnamen aufgerufen werden.

initdb [option...] [ --pgdata | -D ] directory

Der initdb-Befehl kann als authentifizierter Benutzer mit den verschiedenen Flags ausgeführt werden, um eine db-Vorlage in einem bestimmten Verzeichnis zu erstellen.

Nachfolgend finden Sie eine Liste spezifischer Flags, wie im obigen Screenshot zu sehen:

  • --encoding UTF8 (basierend auf dem Gebietsschema kann es beliebig sein).
    • Encoding-Flag legt die Codierung der Datenbankvorlage fest. Alle mit dieser Vorlage erstellten Datenbanken verwenden ebenfalls dieselbe Codierungsmethode, sofern nicht separat angegeben. Es stehen viele Kodierungsmethoden für verschiedene Sprachen zur Verfügung.
  • --pgdata test (Dieses Flag erstellt ein Verzeichnis namens „test“, um die Datenbankdaten zu speichern).
    • Gibt das Verzeichnis an, in dem der Datenbank-Cluster seine Daten speichert.
  • -A peer (Dies gibt die Authentifizierungsmethode an, die in der Datei pg_hba.conf verwendet wird).
    • Gibt die standardmäßige Authentifizierungsmethode für lokale Benutzer an, die in pg_hba.conf verwendet wird (Host- und lokale Leitungen). initdb füllt pg_hba.conf-Einträge vorab mit der angegebenen Authentifizierungsmethode für Nicht-Replikations- sowie Replikationsverbindungen.
  • -k (verwendet die Datenprüfsumme, um I/O-Fehler zu prüfen)
    • Gibt die Datenprüfsumme auf allen Datenseiten an, um die Beschädigung des E/A-Systems zu erkennen. Dies verlangsamt jedoch die Verarbeitungsgeschwindigkeit der Datenbank).

Sichern Ihrer PostgreSQL-Datenbank

Während der Installation wird standardmäßig automatisch ein neuer Benutzer namens postgres erstellt. Dieser Benutzer hat volle Systemrechte, daher ist es wichtig, das Benutzerkonto mit einem starken Passwort zu sichern.

sudo passwd postgres

Wechseln Sie nun zum Postgres-Benutzerkonto. Der Benutzer sollte sudo-Berechtigungen haben.

sudo su – postgres

Die PostgreSQL-Version kann durch Ausführen bestätigt werden

psql -c "SELECT version();"

Um das Passwort von postgres zu ändern Benutzerbenutzungsbefehl:

psql -c "ALTER USER postgres WITH PASSWORD 'MyNewPassword'";

Hinweis:Dieses Passwort gilt nur, wenn der postgres Benutzer stellt über das Netzwerk eine Verbindung zu PostgreSQL her.

Um auf die Postgres-Datenbank zuzugreifen, können Sie sich mit:

bei der PostgreSQL-Datenbank anmelden

psql postgres

Standardmäßig erfordert PostgreSQL keine Kennwortauthentifizierung von Benutzern des lokalen Systems, um auf die Datenbank zuzugreifen. Dies wird als „Peer-Authentifizierung“ bezeichnet. Die Passwortauthentifizierung kann jedoch innerhalb der pg_hba.conf aktiviert werden Datei.

Um diese pg_hba.conf zu bearbeiten verwenden Sie \q Befehl zum Verlassen der Postgres-Shell und zum Aufrufen der Linux-Shell. Bearbeiten Sie in der Linux-Shell die pg_hba.conf Datei. Stellen Sie sicher, dass Sie eine Sicherungskopie erstellen, bevor Sie die Datei bearbeiten.

sudo cp /etc/postgresql/12/main/pg_hba.conf /etc/postgresql/12/main/pg_hba.conf.bak

Bearbeiten Sie dann die Datei mit dem Nano-Editor,

nano /etc/postgresql/12/main/pg_hba.conf

Suchen Sie die lokale Zeile unter „Nur Unix-Domain-Socket-Verbindungen“ und ändern Sie die METHOD Attribut von peer zu md5 .

Laden Sie den PostgreSQL-Dienst neu, um die neuen Einstellungen zu übernehmen.

sudo systemctl reload postgresql

Bitte beachten Sie hier, dass es zwei Benutzer mit dem Namen postgres gibt; Einer ist der Linux-Benutzer, der eine Verbindung zur Datenbank herstellt und auf sie zugreift, und der andere ist der Datenbankbenutzer, der verwendet wird, um administrative Rollen innerhalb der Datenbank auszuführen.

Konfiguration Ihrer PostgreSQL-Datenbank

PostgreSQL kann manuell für Abhöradressen und Ports konfiguriert werden, indem die erforderlichen Parameter in der Datei postgresql.conf geändert werden.

Standardmäßig wird der PostgreSQL-Port 5432 verwendet und lauscht auf localhost. Dies kann durch Bearbeiten der Konfigurationsdatei geändert werden.

sudo nano /etc/postgresql/12/main/postgresql.conf

Der Dienst wird neu gestartet, nachdem Änderungen vorgenommen wurden.

sudo systemctl restart postgresql

Erstellen einer neuen Rolle in PostgreSQL 12

Authentifizierung und Autorisierung in PostgreSQL 12 erfolgen über das „Rollen“-Konzept. Rolle ist hier ein flexibler Begriff, der sich sowohl auf Benutzer als auch auf Gruppen bezieht.

Melden Sie sich mit dem folgenden Befehl beim Postgres-Benutzer an:

sudo su postgres

Neue Rollen können interaktiv über die Befehlszeile mit dem Befehl createrole –interactive erstellt werden. Hier erzeugt die Verwendung des Flags –interactive eine Eingabeaufforderung für den Namen der neuen Rolle und ob dieser Rolle Superuser-Berechtigungen zugewiesen werden sollen.

Ein neuer Benutzer kann mit einer neuen Rolle außerhalb der Benutzer-Postgresql-Shell erstellt werden als:

createuser –interactive

Die Ausgabe des neuen Benutzerbefehls sollte in etwa so aussehen.

Erstellen und Löschen einer Datenbank in Ihrem PostgreSQL-Server

Wenn in PostgreSQL 12 eine neue Rolle erstellt wird, muss eine neue Datenbank mit demselben Namen vorhanden sein, da die Rolle standardmäßig versucht, eine Verbindung mit der Datenbank herzustellen. Wie im vorherigen Abschnitt, wo der Benutzer liam erstellt wird, kann eine Datenbank mit diesem Namen mit dem folgenden Befehl erstellt werden:

createdb liam

Innerhalb von PostgreSQL 12 gibt es mehrere Pfade zum Erstellen von Datenbanken nach Bedarf:

  • Bei Anmeldung über das Postgres-Konto:postgres@server:~$ createdb liam
  • Verwenden Sie sudo , sudo –u postgres created liam

Um die Datenbank zu löschen, können wir

verwenden

dropdb liam

Öffnen einer Postgres-Eingabeaufforderung mit der neuen Rolle

Ein Linux-Benutzer mit demselben Namen wie die Postgres-Datenbank und Rolle kann erstellt werden, um sich mit identbasierter Authentifizierung anzumelden.

Ein Linux-Benutzer kann über die Befehlszeile erstellt werden (falls noch keiner vorhanden ist), indem Sie Folgendes eingeben:

sudo adduser noah

Nachdem der Benutzer erstellt wurde, kann er mit dem folgenden Befehl angemeldet werden:

sudo -u noah psql

Auf die aktuelle Datenbank und die Benutzerinformationen kann mit;

zugegriffen werden

\conninfo

PostgreSQL-Verwaltung

Tabellen erstellen und löschen

Der SQL-Befehl CREATE TABLE kann verwendet werden, um eine beliebige Tabelle in einer Datenbank zu erstellen. Im Befehl muss eine Liste von Spalten und ein Datentyp für jede Spalte angegeben werden.

CREATE TABLE customers (customer_id int, first_name varchar(80), last_name varchar(80));

Dieser Befehl erstellt eine Tabelle mit dem Namen „Kunden“. Die erste Spalte enthält die Kunden-ID vom Typ Integer. Die zweite und dritte Spalte sind vom Typ Zeichen und enthalten die Vor- und Nachnamen der Kunden mit einer maximalen Länge von 80 Zeichen.

Diese neue Tabelle kann durch Eingabe von \d angezeigt werden .

Die Tabelle kann gelöscht werden, indem Sie Folgendes eingeben:

DROP TABLE customers;

Einfügen, Auswählen und Löschen von Daten in einer Tabelle

Daten werden den PostgreSQL-Tabellen in Form von Zeilen hinzugefügt. Jede Zeile repräsentiert einen separaten Datensatz. Daten können mit dem Befehl INSERT INTO in die Zeile eingefügt werden. Dem Befehlsnamen folgt der „Tabellenname“ (im folgenden Beispiel Kunden), das Schlüsselwort VALUES, eine Liste von Werten, die durch ein Komma getrennt sind.

INSERT INTO customers VALUES (1, 'Owen', 'Buyer');

INSERT INTO customers VALUES (2, 'Luke', 'Seller');

Der Inhalt der Tabelle kann mit dem SELECT-Befehl eingesehen werden.

SELECT * FROM customers;

Eine Zeile kann mit DELETE gelöscht werden Befehl. Das WHERE Schlüsselwort wird verwendet, um die Zeilen bedingt auszuwählen.

DELETE FROM customers WHERE last_name = 'Seller';

Geben Sie Folgendes ein, um alle Zeilen zu löschen:

SELECT * FROM customers;

Hinzufügen und Löschen von Spalten aus einer Tabelle

PostgreSQL 12 bietet die Möglichkeit, problemlos Spalten zu bestehenden Tabellen hinzuzufügen oder daraus zu löschen.

Die ALTER TABLE Der Befehl wird zusammen mit dem ADD verwendet -Schlüsselwort, um einer vorhandenen Tabelle eine Spalte hinzuzufügen. Dieses Feld wird für die vorhandenen Zeilen in der Tabelle leer gesetzt.

ALTER TABLE customers ADD branch_id int;

Derselbe Befehl wird mit dem DROP verwendet Schlüsselwort, um die angegebene Spalte aus der Tabelle zu löschen.

ALTER TABLE customers DROP first_name;

Aktualisieren von Daten in einer Tabelle

Neben dem Hinzufügen und Löschen von Datensätzen in einer Tabelle können wir sie auch ändern. Dies kann mit dem UPDATE erfolgen Befehl. Wir müssen die Spalten angeben, die mit den neuen Werten bearbeitet werden müssen.

UPDATE customers SET last_name= 'Buyer' WHERE customer_id = '1';

Überlegungen zur Produktionsumgebung

PostgreSQL 12 kann sicher in einer Produktionsumgebung verwendet werden. Diese Datenbank ist so stabil, dass man keine Probleme haben sollte, sie in großem Maßstab zu implementieren. Weitere Informationen finden Sie in unserem vorherigen Artikel hier.

Fazit

Dieses Tutorial hat Ihnen gezeigt, wie Sie PostgreSQL 12 auf einem Ubuntu 20.04-Server einrichten, der auf DigitalOcean läuft. PostgreSQL 12 ist eine komplexe Anwendung mit vielen neuen und erweiterten Funktionen, wie z. B. einer verbesserten Speicherplatzverwaltung von Standard-B-Tree-Indizes und Unterstützung für die gleichzeitige Neuerstellung von Indizes und die Erstellung von Covering-Indizes. Version 12 unterstützt auch eingebettete WITH-Abfragen und von der ICU bereitgestellte Sortierungen, verbessert die Partitionierung und bietet eine austauschbare Tabellenspeicherschnittstelle, um verschiedene Methoden für die Tabellenspeicherung zu erstellen und zu verwenden.

Nachdem Sie nun die Grundlagen zum Einrichten und Verwenden eines PostgreSQL-Servers kennen, warum probieren Sie nicht eine verwaltete Alternative aus? Mit einem verwalteten Dienst wie ScaleGrid können Sie den gesamten Einrichtungs-, Installations- und Konfigurationsprozess mit einem Klick abschließen. Starten Sie noch heute Ihre kostenlose 30-Tage-Testversion und überzeugen Sie sich selbst! Es ist keine Kreditkarte erforderlich und Sie können Ihre allererste Datenbank in wenigen Minuten einrichten.

Wir haben hier die Installationsgrundlagen behandelt und auch einige Anweisungen für die allgemeine Datenbankverwaltung gegeben. Wir hoffen, dass Sie diesen Leitfaden hilfreich fanden.