Android

So installieren Sie postgresql auf centos 7

How to Set up Virtual Box and Vagrant on Windows

How to Set up Virtual Box and Vagrant on Windows

Inhaltsverzeichnis:

Anonim

PostgreSQL oder Postgres ist ein allgemeines objektrelationales Open-Source-Datenbankverwaltungssystem mit vielen erweiterten Funktionen, mit denen Sie komplexe Webanwendungen erstellen können.

In diesem Tutorial zeigen wir Ihnen zwei verschiedene Methoden zur Installation von PostgreSQL auf Ihrem CentOS 7-Computer. Die erste Methode führt Sie durch die Schritte, die zur Installation von PostgreSQL v9.2.23 aus den CentOS-Repositorys erforderlich sind, während die zweite Methode Ihnen zeigt, wie Sie die neueste Version von PostgreSQL aus den offiziellen PostgreSQL-Repositorys installieren.

Wenn für Ihre Anwendung nicht die neueste Version erforderlich ist, empfehlen wir die Verwendung der ersten Methode und die Installation von PostgreSQL aus den CentOS-Repositorys.

Wir werden auch die Grundlagen der PostgreSQL-Datenbankadministration untersuchen.

Voraussetzungen

Stellen Sie vor dem Fortfahren mit diesem Lernprogramm sicher, dass Sie als Benutzer mit sudo-Berechtigungen angemeldet sind.

Installieren Sie PostgreSQL aus den CentOS-Repositorys

Zum Zeitpunkt der Abfassung dieses Artikels ist die neueste Version von PostgreSQL, die im CentOS-Repository verfügbar ist, PostgreSQL Version 9.2.23.

Führen Sie die folgenden Schritte aus, um PostgreSQL auf Ihrem CentOS-Server zu installieren:

  1. PostgreSQL installieren

    Um den PostgreSQL-Server zusammen mit dem PostgreSQL-Contrib-Paket zu installieren, das mehrere zusätzliche Funktionen für die PostgreSQL-Datenbank bietet, geben Sie einfach Folgendes ein:

    sudo yum install postgresql-server postgresql-contrib

    Datenbank wird initialisiert

    Initialisieren Sie die PostgreSQL-Datenbank mit dem folgenden Befehl:

    sudo postgresql-setup initdb

    Initializing database… OK

    Starten von PostgreSQL

    Um den PostgreSQL-Dienst zu starten und ihn beim Booten zu aktivieren, geben Sie einfach Folgendes ein:

    sudo systemctl start postgresql sudo systemctl enable postgresql

    Überprüfen der PostgreSQL-Installation

    Um die Installation zu überprüfen, versuchen wir, mit dem psql Tool eine Verbindung zum PostgreSQL-Datenbankserver psql und die Serverversion auszudrucken:

    sudo -u postgres psql -c "SELECT version();"

    PostgreSQL 9.2.23 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16), 64-bit (1 row)

Psql ist ein interaktives Befehlszeilenprogramm, mit dem wir mit dem PostgreSQL-Server interagieren können.

Installieren Sie PostgreSQL aus den PostgreSQL-Repositorys

Zum Zeitpunkt des Schreibens dieses Artikels ist die neueste Version von PostgreSQL, die in den offiziellen PostgreSQL-Repositorys verfügbar ist, PostgreSQL Version 10.4. Bevor Sie mit dem nächsten Schritt fortfahren, sollten Sie die Seite PostgreSQL Yum Repository besuchen und prüfen, ob eine neue Version verfügbar ist.

Führen Sie die folgenden Schritte aus, um die neueste PostgreSQL-Version auf Ihrem CentOS-Server zu installieren:

  1. PostgreSQL-Repository aktivieren

    Um das PostgreSQL-Repository zu aktivieren, installieren Sie einfach die RPM-Datei des Repositorys:

    sudo yum install

    PostgreSQL installieren

    Sobald das Repository aktiviert ist, installieren Sie den PostgreSQL-Server und die PostgreSQL-Contrib-Pakete mit:

    sudo yum install postgresql10-server postgresql10-contrib

    Datenbank wird initialisiert

    So initialisieren Sie die PostgreSQL-Datenbank:

    sudo /usr/pgsql-10/bin/postgresql-10-setup initdb

    Initializing database… OK

    Starten von PostgreSQL

    So starten Sie den PostgreSQL-Dienst und aktivieren ihn beim Start:

    sudo systemctl start postgresql-10 sudo systemctl enable postgresql-10

    Überprüfen der PostgreSQL-Installation

    Um die Installation zu überprüfen, versuchen wir, mit dem psql Tool eine Verbindung zum PostgreSQL-Datenbankserver psql und die Serverversion auszudrucken:

    sudo -u postgres /usr/pgsql-10/bin/psql -c "SELECT version();"

    PostgreSQL 10.4 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit (1 row)

PostgreSQL-Rollen und Authentifizierungsmethoden

Datenbankzugriffsberechtigungen in PostgreSQL werden mit dem Konzept der Rollen behandelt. Eine Rolle kann einen Datenbankbenutzer oder eine Gruppe von Datenbankbenutzern darstellen.

PostgreSQL unterstützt mehrere Authentifizierungsmethoden. Die am häufigsten verwendeten Methoden sind:

  • Vertrauen - Bei dieser Methode kann die Rolle eine Verbindung ohne Kennwort herstellen, sofern die in der pg_hba.conf pg_hba.conf definierten Kriterien pg_hba.conf sind. Kennwort - Eine Rolle kann eine Verbindung herstellen, indem ein Kennwort angegeben wird. Die Passwörter können als scram-sha-256 md5 und password (Klartext) gespeichert werden.Ident - Diese Methode wird nur für TCP / IP-Verbindungen unterstützt. Es funktioniert, indem der Benutzername des Client-Betriebssystems mit einer optionalen Benutzernamenszuordnung abgerufen wird. Peer - Entspricht Ident, wird jedoch nur bei lokalen Verbindungen unterstützt.

Die PostgreSQL- pg_hba.conf wird in der Konfigurationsdatei mit dem Namen pg_hba.conf . Standardmäßig verwendet PostgreSQL für lokale Verbindungen die Peer-Authentifizierungsmethode.

Der postgres Benutzer wird automatisch erstellt, wenn Sie PostgreSQL installieren. Dieser Benutzer ist der Superuser für die PostgreSQL-Instanz und entspricht dem MySQL-Root-Benutzer.

Um sich als postgres-Benutzer beim PostgreSQL-Server anzumelden, müssen Sie zuerst zum Benutzer postgres wechseln und dann mit dem Dienstprogramm psql auf die PostgreSQL-Eingabeaufforderung zugreifen:

sudo su - postgres psql

Von hier aus können Sie mit Ihrer PostgreSQL-Instanz interagieren. Geben Sie Folgendes ein, um die PostgreSQL-Shell zu verlassen:

\q

Sie können auch auf die PostgreSQL-Eingabeaufforderung zugreifen, ohne die Benutzer mit dem Befehl sudo zu wechseln:

sudo -u postgres psql

Der Benutzer postgres wird normalerweise nur vom lokalen Host verwendet, und es wird empfohlen, das Kennwort für diesen Benutzer nicht postgres .

Wenn Sie PostgreSQL Version 10 aus den offiziellen PostgreSQL-Repositorys installiert haben, müssen Sie den vollständigen Pfad zur psql Binärdatei verwenden, die /usr/pgsql-10/bin/psql .

Erstellen von PostgreSQL-Rollen und -Datenbanken

Nur Superuser und Rollen mit CREATEROLE Berechtigungen können neue Rollen erstellen.

Im folgenden Beispiel erstellen wir eine neue Rolle mit dem Namen john eine Datenbank mit dem Namen johndb und erteilen Berechtigungen für die Datenbank.

  1. Stellen Sie eine Verbindung zur PostgreSQL-Shell her

    sudo -u postgres psql

    Erstellen Sie eine neue PostgreSQL-Rolle

    Der folgende Befehl erstellt eine neue Rolle mit dem Namen john:

    create role john;

    Erstellen Sie eine neue PostgreSQL-Datenbank

    Erstellen Sie mit dem Befehl createdb eine neue Datenbank mit dem Namen johndb:

    create database johndb;

    Berechtigungen gewähren

    Führen Sie die folgende Abfrage aus, um dem Benutzer john Berechtigungen für die im vorherigen Schritt erstellte Datenbank zu erteilen:

    grant all privileges on database johndb to john;

Aktivieren Sie den Remotezugriff auf den PostgreSQL-Server

Standardmäßig überwacht der PostgreSQL-Server nur die lokale Schnittstelle 127.0.0.1 . Um den Fernzugriff auf Ihren PostgreSQL-Server zu aktivieren, öffnen Sie die Konfigurationsdatei postgresql.conf und fügen Sie listen_addresses = '*' im Abschnitt CONNECTIONS AND AUTHENTICATION .

sudo vim /var/lib/pgsql/data/postgresql.conf Wenn Sie PostgreSQL Version 10 /var/lib/pgsql/10/data/postgresql.conf lautet der Pfad zur Datei /var/lib/pgsql/10/data/postgresql.conf ./var/lib/pgsql/data/postgresql.conf

#------------------------------------------------------------------------------ # CONNECTIONS AND AUTHENTICATION #------------------------------------------------------------------------------ # - Connection Settings - listen_addresses = '*' # what IP address(es) to listen on;

Speichern Sie die Datei und starten Sie den PostgreSQL-Dienst neu mit:

sudo systemctl restart postgresql Wenn Sie PostgreSQL Version 10 systemctl restart postgresql-10 , starten Sie den PostgreSQL-Dienst mit systemctl restart postgresql-10 .

Überprüfen Sie die Änderungen mit dem Dienstprogramm ss :

ss -nlt | grep 5432

LISTEN 0 128 0.0.0.0:5432 0.0.0.0:* LISTEN 0 128:5432:*

Wie Sie der obigen Ausgabe entnehmen können, überwacht der PostgreSQL-Server alle Schnittstellen (0.0.0.0).

Im letzten Schritt konfigurieren Sie den Server so, dass er pg_hba.conf akzeptiert, indem Sie die Datei pg_hba.conf .

Nachfolgend einige Beispiele für verschiedene Anwendungsfälle:

/var/lib/pgsql/data/pg_hba.conf

# TYPE DATABASE USER ADDRESS METHOD # The user jane will be able to access all databases from all locations using a md5 password host all jane 0.0.0.0/0 md5 # The user jane will be able to access only the janedb from all locations using a md5 password host janedb jane 0.0.0.0/0 md5 # The user jane will be able to access all databases from a trusted location (192.168.1.134) without a password host all jane 192.168.1.134 trust Wenn Sie PostgreSQL Version 10 /var/lib/pgsql/10/data/pg_hba.conf lautet der vollständige Pfad zur Datei /var/lib/pgsql/10/data/pg_hba.conf .

Fazit

Sie haben gelernt, wie Sie PostgreSQL auf Ihrem CentOS 7-Server installieren und konfigurieren.

Weitere Informationen zu diesem Thema finden Sie in der PostgreSQL-Dokumentation.

Centos Postgresql-Datenbank