So installieren und verwenden Sie PostgreSQL 9.4 unter Debian 8

Einführung

Relationale Datenbanken sind der Eckpfeiler der Datenorganisation für eine Vielzahl von Anforderungen. Sie bieten alles, vom Online-Shopping bis zum Raketenstart. Eine Datenbank, die sowohl ehrwürdig als auch noch immer im Spiel ist, ist PostgreSQL. PostgreSQL folgt den meisten SQL-Standards, verfügt über ACID-Transaktionen, unterstützt Fremdschlüssel und -sichten und befindet sich noch in der aktiven Entwicklung.

Wenn die Anwendung, die Sie ausführen, Stabilität, Paketqualität und einfache Administration erfordert, ist Debian 8 (Codename "Jessie") einer der besten Kandidaten für eine Linux-Distribution. Es bewegt sich ein bisschen langsamer als andere „Distributionen“, aber seine Stabilität und Qualität sind allgemein anerkannt. Wenn Ihre Anwendung oder Ihr Dienst eine Datenbank benötigt, ist die Kombination aus Debian 8 und PostgreSQL eine der besten der Stadt.

In diesem Artikel zeigen wir Ihnen, wie Sie PostgreSQL auf einer neuen Debian 8 Stable-Instanz installieren und loslegen können.

Voraussetzungen

Die erste Sache ist, ein Debian 8-Stable-System in Gang zu bringen. Sie können den Anweisungen im Artikel Initial Server Setup with Debian 8 folgen. In diesem Tutorial wird davon ausgegangen, dass Sie ein Debian 8-Stable-Droplet bereit haben.

Sofern nicht anders angegeben, sollten alle Befehle in diesem Lernprogramm als Nicht-Root-Benutzer mit Sudo-Berechtigungen ausgeführt werden. Informationen zum Erstellen von Benutzern und zum Gewähren von Sudo-Berechtigungen finden Sie unter Initial Server Setup with Debian 8.

PostgreSQL installieren

Stellen Sie vor der Installation von PostgreSQL sicher, dass Sie die neuesten Informationen aus den Debian-Repositories haben, indem Sie die apt-Paketliste aktualisieren mit:

sudo apt-get update

Sie sollten sehen, dass die Paketlisten aktualisiert werden und die folgende Meldung angezeigt wird:

Reading package lists... Done.

Es gibt mehrere Pakete, die mit + postgresql beginnen:

  • + postgresql-9.4 +: Das PostgreSQL-Serverpaket

  • + postgresql-client-9.4 +: Der Client für PostgreSQL

  • + postgresql +: Ein „Metapaket“, das besser im Debian Handbook oder im http: //www.debian erklärt wird. org / doc / manual / maint-guide / [Debian New Maintainers 'Guide]

So installieren Sie das Paket + postgresql-9.4 + direkt:

sudo apt-get install postgresql-9.4 postgresql-client-9.4

Wenn Sie gefragt werden, geben Sie "+ Y +" ein, um die Pakete zu installieren. Wenn alles geklappt hat, werden die Pakete jetzt aus dem Repository heruntergeladen und installiert.

Überprüfung der Installation

Um zu überprüfen, ob der PostgreSQL-Server korrekt installiert wurde und ausgeführt wird, können Sie den Befehl + ps + verwenden:

# ps -ef | grep postgre

Sie sollten so etwas auf dem Terminal sehen:

postgres 32164     1  0 21:58 ?        00:00:00 /usr/lib/postgresql/9.4/bin/postgres -D /var/lib/   postgresql/9.4/main -c config_file=/etc/postgresql/9.4/main/postgresql.conf
postgres 32166 32164  0 21:58 ?        00:00:00 postgres: checkpointer process
postgres 32167 32164  0 21:58 ?        00:00:00 postgres: writer process
postgres 32168 32164  0 21:58 ?        00:00:00 postgres: wal writer process
postgres 32169 32164  0 21:58 ?        00:00:00 postgres: autovacuum launcher process
postgres 32170 32164  0 21:58 ?        00:00:00 postgres: stats collector process

Erfolg! PostgreSQL wurde erfolgreich installiert und wird ausgeführt.

Zugriff auf die PostgreSQL-Datenbank

Unter Debian wird PostgreSQL mit einem Standardbenutzer und einer Standarddatenbank namens + postgres + installiert. Um eine Verbindung zur Datenbank herzustellen, müssen Sie zuerst zum Benutzer "+ postgres +" wechseln, indem Sie den folgenden Befehl eingeben, während Sie als root angemeldet sind (dies funktioniert nicht mit sudo-Zugriff):

su - postgres

Sie sollten jetzt als "+ postgres " angemeldet sein. Um die PostgreSQL-Konsole zu starten, geben Sie ` psql +` ein:

psql

Getan! Sie sollten an der PostgreSQL-Konsole angemeldet sein. Sie sollten die folgende Eingabeaufforderung sehen:

psql (9.4.2)
Type "help" for help.

postgres=#

Um die psql-Konsole zu verlassen, benutzen Sie einfach den Befehl + \ q +.

Neue Rollen anlegen

Standardmäßig verwendet Postgres ein Konzept mit der Bezeichnung "Rollen", um die Authentifizierung und Autorisierung zu unterstützen. Diese ähneln in gewisser Weise normalen Unix-Konten, aber PostgreSQL unterscheidet nicht zwischen Benutzern und Gruppen und bevorzugt stattdessen den flexibleren Begriff „Rolle“.

Bei der Installation ist PostgreSQL für die Verwendung der Identitätsauthentifizierung eingerichtet. Dies bedeutet, dass PostgreSQL-Rollen einem passenden Unix / Linux-Systemkonto zugeordnet werden. Wenn eine PostgreSQL-Rolle vorhanden ist, kann sie angemeldet werden, indem Sie sich bei dem zugeordneten Linux-Systemkonto anmelden.

Bei der Installation wurde ein Benutzerkonto mit dem Namen postgres erstellt, das der Standardrolle Postgres zugeordnet ist.

Um zusätzliche Rollen zu erstellen, können wir den Befehl + createuser + verwenden. Beachten Sie, dass dieser Befehl als Benutzer "+ postgres +" ausgegeben werden sollte, nicht in der PostgreSQL-Konsole:

createuser --interactive

Dies ist im Grunde ein interaktives Shell-Skript, das die richtigen PostgreSQL-Befehle aufruft, um einen Benutzer nach Ihren Vorgaben zu erstellen. Es werden einige Fragen gestellt: der Name der Rolle, ob es sich um einen Superuser handeln soll, ob die Rolle neue Datenbanken erstellen kann und ob die Rolle neue Rollen erstellen kann. Die Seite "+ man +" enthält weitere Informationen:

man createuser

Erstellen einer neuen Datenbank

PostgreSQL ist standardmäßig mit Authentifizierungsrollen eingerichtet, die von übereinstimmenden Systemkonten angefordert werden. (Weitere Informationen hierzu finden Sie unter postgresql.org. Es wird auch davon ausgegangen, dass eine übereinstimmende Datenbank für die Rolle vorhanden ist, zu der eine Verbindung hergestellt werden soll. Wenn ich also einen Benutzer mit dem Namen "+ test1 " habe, versucht diese Rolle standardmäßig, eine Verbindung zu einer Datenbank mit dem Namen " test1 +" herzustellen.

Sie können die entsprechende Datenbank erstellen, indem Sie einfach diesen Befehl als Benutzer + postgres + aufrufen:

createdb test1

Die neue Datenbank "+ test1 +" wird nun erstellt.

Herstellen einer Verbindung zu PostgreSQL mit dem neuen Benutzer

Nehmen wir an, Sie haben ein Linux-Konto mit dem Namen "+ test1 ", haben eine entsprechende PostgreSQL-Rolle " test1 " erstellt und die Datenbank " test1 " erstellt. So ändern Sie das Benutzerkonto unter Linux in " test1 +":

su - test1

Stellen Sie dann mit dem folgenden Befehl eine Verbindung zur + test1 + Datenbank als + test1 + PostgreSQL-Rolle her:

psql

Jetzt sollte die PostgreSQL-Eingabeaufforderung mit dem neu erstellten Benutzer "+ test1 " anstelle von " postgres +" angezeigt werden.

Tabellen erstellen und löschen

Nachdem Sie nun wissen, wie Sie eine Verbindung zum PostgreSQL-Datenbanksystem herstellen, werden wir zunächst einige grundlegende Aufgaben ausführen.

Zunächst erstellen wir eine Tabelle zum Speichern einiger Daten. Erstellen wir eine Tabelle, die Spielgeräte beschreibt.

Die grundlegende Syntax für diesen Befehl sieht ungefähr so ​​aus:

CREATE TABLE table_name (
   column_name1 col_type (field_length) column_constraints,
   column_name2 col_type (field_length),
   column_name3 col_type (field_length)
);

Wie Sie sehen, geben wir der Tabelle einen Namen und definieren dann die gewünschten Spalten sowie den Spaltentyp und die maximale Länge der Felddaten. Optional können wir auch Tabelleneinschränkungen für jede Spalte hinzufügen.

Weitere Informationen zum Erstellen und Verwalten von Tabellen in Postgres finden Sie unter https://www.digitalocean.com/community/tutorials/how-to-create-remove-manage-tables-in-postgresql-on-a-cloud -server [So erstellen, entfernen und verwalten Sie Tabellen in PostgreSQL auf einem Cloud-Server] Artikel.

Für unsere Zwecke erstellen wir eine einfache Tabelle wie die folgende:

CREATE TABLE playground (
   equip_id serial PRIMARY KEY,
   type varchar (50) NOT NULL,
   color varchar (25) NOT NULL,
   location varchar(25) check (location in ('north', 'south', 'west', 'east', 'northeast', 'southeast', 'southwest', 'northwest')),
   install_date date
);

Wir haben einen Spieltisch gemacht, der die Geräte, die wir haben, inventarisiert. Dies beginnt mit einer Geräte-ID, die vom seriellen Typ ist. Dieser Datentyp ist eine automatisch inkrementierende Ganzzahl. Wir haben dieser Spalte die Einschränkung eines Primärschlüssels gegeben, was bedeutet, dass die Werte eindeutig und nicht null sein müssen.

Für zwei unserer Spalten haben wir keine Feldlänge angegeben. Dies liegt daran, dass für einige Spaltentypen keine festgelegte Länge erforderlich ist, da die Länge vom Typ vorgegeben wird.

Wir geben dann Spalten für den Gerätetyp und die Farbe an, von denen jede nicht leer sein darf. Anschließend erstellen wir eine Standortspalte und eine Einschränkung, für die der Wert einer von acht möglichen Werten sein muss. Die letzte Spalte ist eine Datumsspalte, in der das Installationsdatum der Ausrüstung angegeben ist.

Verwenden Sie zum Anzeigen der Tabellen den Befehl "+ \ dt +" in der psql-Eingabeaufforderung. Das Ergebnis wäre ähnlich

            List of relations
Schema |    Name    | Type  |  Owner
--------+------------+-------+----------
public | playground | table | postgres

Wie Sie sehen können, haben wir unseren Spielplatz Tisch.

Hinzufügen, Abfragen und Löschen von Daten in einer Tabelle

Nachdem wir eine Tabelle erstellt haben, können wir einige Daten einfügen.

Fügen wir eine Folie und eine Schaukel hinzu. Dazu rufen wir die Tabelle auf, zu der wir hinzufügen möchten, benennen die Spalten und stellen dann Daten für jede Spalte bereit. Unsere Rutsche und Schaukel könnte so hinzugefügt werden:

INSERT INTO playground (type, color, location, install_date) VALUES ('slide', 'blue', 'south', '2014-04-28');
INSERT INTO playground (type, color, location, install_date) VALUES ('swing', 'yellow', 'northwest', '2010-08-16');

Sie sollten ein paar Dinge beachten. Beachten Sie zunächst, dass die Spaltennamen nicht in Anführungszeichen gesetzt werden dürfen, die von Ihnen eingegebenen Spaltenwerte jedoch Anführungszeichen erfordern.

Beachten Sie auch, dass wir keinen Wert für die Spalte "+ equip_id +" eingeben. Dies liegt daran, dass dies automatisch generiert wird, wenn eine neue Zeile in der Tabelle erstellt wird.

Wir können dann die Informationen, die wir hinzugefügt haben, zurückerhalten, indem wir Folgendes eingeben:

SELECT * FROM playground;

Die Ausgabe sollte sein

equip_id | type  | color  | location  | install_date
----------+-------+--------+-----------+--------------
       1 | slide | blue   | south     | 2014-04-28
       2 | swing | yellow | northwest | 2010-08-16

Hier können Sie sehen, dass unsere + equip_id + erfolgreich ausgefüllt wurde und dass alle anderen Daten korrekt organisiert wurden. Wenn unsere Folie kaputt geht und wir sie vom Spielplatz entfernen, können wir die Zeile auch von unserem Tisch entfernen, indem wir Folgendes eingeben:

DELETE FROM playground WHERE type = 'slide';

Wenn wir unsere Tabelle erneut abfragen:

SELECT * FROM playground;

Wir werden sehen, dass unsere Folie nicht mehr Teil der Tabelle ist:

equip_id | type  | color | location | install_date
----------+-------+-------+----------+--------------
       1 | slide | blue  | south    | 2014-04-28

Nützliche Befehle

Mit den folgenden Befehlen können Sie sich einen Überblick über Ihre aktuelle Umgebung verschaffen:

  • * \? *: Ruft eine vollständige Liste der psql-Befehle ab, einschließlich der hier nicht aufgeführten.

  • * \ h *: Hilfe zu SQL-Befehlen. Anschließend können Sie einen bestimmten Befehl eingeben, um Hilfe zur Syntax zu erhalten.

  • * \ q *: Beenden Sie das psql-Programm und kehren Sie zur Linux-Eingabeaufforderung zurück.

  • * \ d *: Listet die verfügbaren Tabellen, Ansichten und Sequenzen in der aktuellen Datenbank auf.

  • * \ du *: Liste der verfügbaren Rollen

  • * \ dp *: Listet Zugriffsrechte auf

  • * \ dt *: Tabellen auflisten

  • * \ l *: Datenbanken auflisten

  • * \ c *: Verbindung zu einer anderen Datenbank herstellen. Folgen Sie diesem durch den Datenbanknamen.

  • * \ password *: Ändern Sie das Passwort für den folgenden Benutzernamen.

  • * \ conninfo *: Informationen zur aktuellen Datenbank und Verbindung abrufen.

Mit diesen Befehlen sollten Sie in der Lage sein, in kürzester Zeit in den PostgreSQL-Datenbanken, -Tabellen und -Rollen zu navigieren.

Fazit

Sie sollten jetzt eine voll funktionsfähige PostgreSQL-Datenbank auf Ihrem Debian-System haben. Herzliche Glückwünsche! Es gibt eine Fülle von Dokumentationen, die Sie hier abrufen können:

  • PostgreSQL-Handbücher

  • Installieren des Pakets + postgresql-doc +: + sudo apt-get install postgresql-doc +

  • + README + Datei installiert unter + / usr / share / doc / postgresql-doc-9.4 / tutorial / README +

Eine vollständige Liste der unterstützten SQL-Befehle in PostgreSQL finden Sie unter folgendem Link:

Um die verschiedenen Funktionen der Datenbanken zu vergleichen, können Sie Folgendes überprüfen:

Zum besseren Verständnis von Rollen und Berechtigungen siehe: