GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So installieren Sie PostgreSQL unter CentOS 7

PostgreSQL oder Postgres ist ein universelles 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 zum Installieren von PostgreSQL v9.2.23 aus den CentOS-Repositories erforderlich sind, während die zweite Ihnen zeigt, wie Sie die neueste Version von PostgreSQL aus den offiziellen PostgreSQL-Repositories installieren.

Wenn Ihre Anwendung nicht die neueste Version erfordert, empfehlen wir, die erste Methode zu verwenden und PostgreSQL aus den CentOS-Repositories zu installieren.

Wir werden auch die Grundlagen der PostgreSQL-Datenbankverwaltung untersuchen.

Voraussetzungen #

Bevor Sie mit diesem Tutorial fortfahren, vergewissern Sie sich, dass Sie als Benutzer mit sudo-Berechtigungen angemeldet sind.

Installieren Sie PostgreSQL aus den CentOS-Repositories #

Zum Zeitpunkt der Erstellung dieses Artikels war die neueste Version von PostgreSQL, die in den CentOS-Repositories 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 bereitstellt, geben Sie einfach Folgendes ein:

    sudo yum install postgresql-server postgresql-contrib
  2. Initialisieren der Datenbank

    Initialisieren Sie die PostgreSQL-Datenbank mit dem folgenden Befehl:

    sudo postgresql-setup initdb
    Initializing database ... OK
  3. PostgreSQL starten

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

    sudo systemctl start postgresqlsudo systemctl enable postgresql
  4. Überprüfung der PostgreSQL-Installation

    Um die Installation zu überprüfen, versuchen wir, uns mit psql mit dem PostgreSQL-Datenbankserver zu verbinden Tool und drucken Sie die Serverversion aus:

    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-Repositories #

Zum Zeitpunkt der Erstellung dieses Artikels war die neueste Version von PostgreSQL, die in den offiziellen PostgreSQL-Repositories 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 das Repository rpm Datei:

    sudo yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm
  2. PostgreSQL installieren

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

    sudo yum install postgresql10-server postgresql10-contrib
  3. Initialisieren der Datenbank

    Um die PostgreSQL-Datenbank zu initialisieren, geben Sie Folgendes ein:

    sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
    Initializing database ... OK
  4. PostgreSQL starten

    Um den PostgreSQL-Dienst zu starten und zu aktivieren, dass er beim Booten startet, geben Sie Folgendes ein:

    sudo systemctl start postgresql-10sudo systemctl enable postgresql-10
  5. Überprüfung der PostgreSQL-Installation

    Um die Installation zu überprüfen, versuchen wir, uns mit psql mit dem PostgreSQL-Datenbankserver zu verbinden Tool und drucken Sie die Serverversion aus:

    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 innerhalb von PostgreSQL werden mit dem Rollenkonzept gehandhabt. Eine Rolle kann einen Datenbankbenutzer oder eine Gruppe von Datenbankbenutzern darstellen.

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

  • Vertrauen - Mit dieser Methode kann sich die Rolle ohne Passwort verbinden, solange die in der pg_hba.conf definierten Kriterien erfüllt werden erfüllt sind.
  • Passwort – Eine Rolle kann eine Verbindung herstellen, indem sie ein Passwort bereitstellt. Die Passwörter können als scram-sha-256 gespeichert werden md5 und password (Klartext).
  • Ident - Diese Methode wird nur bei TCP/IP-Verbindungen unterstützt. Es funktioniert, indem es den Benutzernamen des Betriebssystems des Clients erhält, mit einer optionalen Benutzernamenzuordnung.
  • Peer - Dasselbe wie Ident, wird aber nur bei lokalen Verbindungen unterstützt.

Die PostgreSQL-Clientauthentifizierung wird in der Konfigurationsdatei mit dem Namen pg_hba.conf definiert . Standardmäßig ist PostgreSQL für lokale Verbindungen auf die Verwendung der Peer-Authentifizierungsmethode eingestellt.

Das 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 beim PostgreSQL-Server als postgres-Benutzer anzumelden, müssen Sie zuerst zu userpostgres wechseln und dann mit psql auf die PostgreSQL-Eingabeaufforderung zugreifen Dienstprogramm:

sudo su - postgrespsql

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

\q

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

sudo -u postgres psql

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

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

PostgreSQL-Rolle und -Datenbank erstellen #

Nur Superuser und Rollen mit CREATEROLE Berechtigung kann neue Rollen erstellen.

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

  1. Verbinden Sie sich mit der PostgreSQL-Shell

    sudo -u postgres psql
  2. Erstellen Sie eine neue PostgreSQL-Rolle

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

    CREATE ROLE john;
  3. Erstellen Sie eine neue PostgreSQL-Datenbank

    Erstellen Sie mithilfe von createdb eine neue Datenbank mit dem Namen „johndb“. Befehl:

    CREATE DATABASE johndb;
  4. Berechtigungen erteilen

    Um dem john Berechtigungen zu erteilen user in der Datenbank, die wir im vorherigen Schritt erstellt haben, führen Sie die folgende Abfrage aus:

    GRANT ALL PRIVILEGES ON DATABASE johndb TO john;

Aktivieren Sie den Fernzugriff auf den PostgreSQL-Server #

Standardmäßig lauscht der PostgreSQL-Server nur auf der lokalen 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 = '*' hinzu in CONNECTIONS AND AUTHENTICATION Abschnitt.

sudo vim /var/lib/pgsql/data/postgresql.conf
Wenn Sie PostgreSQL Version 10 ausführen, 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 ausführen, starten Sie den PostgreSQL-Dienst mit systemctl restart postgresql-10 neu .

Bestätigen Sie die Änderungen mit ss Dienstprogramm:

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, lauscht der PostgreSQL-Server auf allen Schnittstellen (0.0.0.0).

Der letzte Schritt besteht darin, den Server so zu konfigurieren, dass er Remote-Verbindungen akzeptiert, indem Sie die pg_hba.conf bearbeiten Datei.

Unten sind einige Beispiele, die verschiedene Anwendungsfälle zeigen:

/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 ausführen, lautet der vollständige Pfad zur Datei /var/lib/pgsql/10/data/pg_hba.conf .
Cent OS
  1. So installieren Sie PHP 7, 7.2 und 7.3 auf CentOS 7

  2. So installieren Sie Java 11 und 12 unter CentOS 7

  3. So installieren Sie PostgreSQL unter CentOS 7

  4. So installieren Sie PostgreSQL 10 auf CentOS 6 / RHEL 6

  5. So installieren Sie PostgreSQL unter CentOS 7 / RHEL 7

So installieren Sie phpPgAdmin 5.6 unter CentOS 7 / RHEL 7

So installieren Sie PostgreSQL in CentOS 8

So installieren Sie den PostgreSQL-Datenbankserver CentOS 8

So installieren Sie PostgreSQL unter CentOS 6

So installieren Sie OpenNMS unter CentOS 7

So installieren Sie PostgreSQL und pgAdmin in CentOS 8