PostgreSQL (einfach als Postgres bekannt) ist ein objektrelationales Datenbankverwaltungssystem (ORDBMS), das für viele Plattformen verfügbar ist, darunter Linux, Microsoft Windows, FreeBSD, HP-UX, AIX, Solaris und Mac OS.
PostgreSQL wird unter der PostgreSQL-Lizenz veröffentlicht, einer freien und freizügigen Open-Source-Softwarelizenz, die von der PGDG (PostgreSQL Global Development Group), einer Gruppe von einzelnen Freiwilligen und Unternehmen, entwickelt wurde.
In diesem Beitrag gehen wir durch die Installation von PostgreSQL 11/10 auf Debian 9/Debian 8.
PostgreSQL-Repository hinzufügen
PostgreSQL veröffentlicht deb-Pakete für Debian-basierte Plattformen, und ihre Pakete sind aktueller als die im OS-Basis-Repository verfügbaren.
Importieren Sie den PostgreSQL-Signaturschlüssel.
wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O- | sudo apt-key add -
Fügen Sie die PostgreSQL-Repository-Informationen zu /etc/apt/sources.list.d/postgresql.list hinzu Datei.
### Debian 9 ### echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql.list ### Debian 8 ### echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql.list
PostgreSQL installieren
Nachdem Sie das PostgreSQL-Repository hinzugefügt haben, führen Sie den folgenden Befehl aus, um den Repository-Index zu aktualisieren.
sudo apt-get update
Installieren Sie PostgreSQL mit dem Befehl apt-get.
### PostgreSQL 11 ### sudo apt install -y postgresql-11 ### PostgreSQL 10 ### sudo apt install -y postgresql-10
PostgreSQL-Dienst steuern
Um den PostgreSQL-Dienst zu starten, führen Sie Folgendes aus:
sudo systemctl start postgresql
Um den PostgreSQL-Dienst zu stoppen, führen Sie Folgendes aus:
sudo systemctl stop postgresql
Um den PostgreSQL-Dienst neu zu starten, führen Sie Folgendes aus:
sudo systemctl restart postgresql
Um den Status des PostgreSQL-Dienstes zu überprüfen, führen Sie Folgendes aus:
sudo systemctl status postgresql
Ausgabe:
● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since Sat 2019-02-23 01:49:54 EST; 23s ago Main PID: 2586 (code=exited, status=0/SUCCESS) CGroup: /system.slice/postgresql.service Feb 23 01:49:54 server systemd[1]: Starting PostgreSQL RDBMS... Feb 23 01:49:54 server systemd[1]: Started PostgreSQL RDBMS.
PostgreSQL-Server konfigurieren
PostgreSQL lauscht nur auf dem Loopback-Adapter (127.0.0.1) . Manchmal muss die extern gehostete Anwendung möglicherweise eine Verbindung zur Datenbank herstellen. Dafür müssen wir PostgreSQL so konfigurieren, dass es auf allen Adaptern lauscht.
### PostgreSQL 11 ### sudo nano /etc/postgresql/11/main/postgresql.conf ### PostgreSQL 10 ### sudo nano /etc/postgresql/10/main/postgresql.conf
Legen Sie die listen_addresses
fest zu *
oder <IPAddress>
.
listen_addresses = '*'
PostgreSQL-Dienst neu starten.
sudo systemctl restart postgresql
Bestätigen Sie, dass PostgreSQL Port 5432 überwacht mit dem netstat-Befehl.
sudo netstat -antup | grep 5432
Ausgabe:
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 3712/postgres tcp6 0 0 :::5432 :::* LISTEN 3712/postgres
LESEN :netstat-Befehl nicht auf Ubuntu gefunden – Quick Fix
Zugriff auf PostgreSQL
Um die Datenbank zu verwalten, müssen Sie sich als Postgres-Benutzer anmelden.
sudo su -l postgres
Greifen Sie mit psql auf die Datenbank zu Befehl. Es ist eine interaktive Shell für die Arbeit mit der PostgreSQL-Datenbank .
psql
Ausgabe:
postgres@server:~$ psql psql (11.2 (Debian 11.2-1.pgdg90+1)) Type "help" for help. postgres=#ein
Sichere PostgreSQL-Datenbank
Wir werden ein Passwort für den Linux-Benutzer (postgres) festlegen sowie DB-Administrator (postgres) .
Passwort für Linux-Benutzer festlegen (postgres):
sudo passwd postgres
Ausgabe:
raj@mydebian:~$ sudo passwd postgres Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
Passwort für DB-Administrator (postgres) festlegen:
su - postgres psql
Auf der PSQL-Shell , führen Sie den folgenden Befehl aus, um das Datenbankadministratorkennwort zu ändern.
postgres=# \password
ODER
postgres=# \password postgres
Ausgabe:
postgres=# \password postgres Enter new password: Enter it again:
PostgreSQL-DB-Befehle
Die Syntax zum Erstellen einer Datenbank lautet:
$ su - postgres $ createdb test
Die Syntax zum Erstellen eines Benutzers (raj) lautet:
$ psql test test=# CREATE USER raj WITH SUPERUSER LOGIN PASSWORD 'password';
Überprüfen Sie, ob der neue Benutzer erstellt wurde oder nicht.
test=# \du
Ausgabe:
test=# \du List of roles Role name | Attributes | Member of -----------+------------------------------------------------------------+----------- postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {} raj | Superuser | {}
Melden Sie sich mit dem Benutzer „raj“ an.
psql -h localhost -d test -U raj
Ausgabe:
psql (11.2 (Debian 11.2-1.pgdg90+1)) SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off) Type "help" for help. test=#
Die Syntax zum Auflisten von Datenbanken:
test=# \l
Ausgabe:
test=# \l 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 test | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | (4 rows)
Das ist alles. Sie haben PostgreSQL 11 / 10 erfolgreich auf Debian 9 / Debian 8 installiert.