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

So installieren Sie PostgreSQL mit pgAdmin unter CentOS 8

Einführung

PostgreSQL ist das fortschrittlichste RDBMS und pgAdmin ist eine Web-UI für Postgres. Hier sehen Sie, wie Sie PostgreSQL mit pgAdmin auf CentOS / RHEL 8 installieren.

Was ist PostgreSQL?

PostgreSQL (auch bekannt als Postgres ) ist ein kostenloses Open-Source-Managementsystem für relationale Datenbanken (RDBMS), das auf Erweiterbarkeit und SQL-Konformität Wert legt. PostgreSQL hieß ursprünglich POSTGRES und bezog sich auf seine Ursprünge als Nachfolger von Ingres Datenbank. 1996 wurde das Projekt in PostgreSQL umbenannt, um seine Unterstützung für SQL widerzuspiegeln.

PostgreSQL bietet Transaktionen mit den Eigenschaften Atomicity, Consistency, Isolation, Durability (ACID), automatisch aktualisierbare Ansichten, materialisierte Ansichten, Trigger, Fremdschlüssel und gespeicherte Prozeduren. Es wurde entwickelt, um eine Reihe von Workloads zu bewältigen, von einzelnen Computern bis hin zu Data Warehouses oder Webdiensten mit vielen gleichzeitigen Benutzern. Es ist die Standarddatenbank für macOS Server und ist auch für Linux, FreeBSD, OpenBSD und Windows verfügbar.

Was ist pgAdmin?

pgAdmin ist ein kostenloses und quelloffenes Verwaltungstool mit grafischer Benutzeroberfläche (GUI) für Postgres-Datenbankserver.

Darüber hinaus ist pgAdmin in Desktop- und Weboberflächen verfügbar. pgAdmin ist das funktionsreichste und beliebteste unter den anderen Verwaltungstools für PostgreSQL.

Linux-Server-Pakete aktualisieren

Aktualisieren Sie also Linux-Serverpakete mit dnf Befehl.

# dnf update -y

Installieren von Postgres Official

Um die neueste Version zu installieren, müssen wir das offizielle Yum-Repository von PostgreSQL auf unserem Linux-Server hinzufügen.

[root@unixcop ~]# dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Failed to set locale, defaulting to C.UTF-8
Last metadata expiration check: 21:31:22 ago on Sun Aug  8 10:39:31 2021.
pgdg-redhat-repo-latest.noarch.rpm               18 kB/s |  12 kB     00:00    
Dependencies resolved.
================================================================================
 Package                 Architecture  Version        Repository           Size
================================================================================
Installing:
 pgdg-redhat-repo        noarch        42.0-19        @commandline         12 k

Transaction Summary
================================================================================
Install  1 Package

Total size: 12 k
Installed size: 12 k
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1 
  Installing       : pgdg-redhat-repo-42.0-19.noarch                        1/1 
  Verifying        : pgdg-redhat-repo-42.0-19.noarch                        1/1 

Installed:
  pgdg-redhat-repo-42.0-19.noarch                                               

Complete!
[root@unixcop ~]# 

Deaktivieren Sie das PostgreSQL-Modul im Standard-yum-Repository, indem Sie den folgenden Befehl ausführen.

# dnf -qy module disable postgresql

Installieren des Postgres-Datenbankservers auf CentOS 8

Installieren Sie also den Postgres-Datenbankserver 13 (aktuell zum Zeitpunkt des Schreibens dieses Artikels) auf Ihrem Linux-Server, indem Sie dnf verwenden Befehl.

[root@unixcop ~]# dnf install -y postgresql13-server
Last metadata expiration check: 0:01:38 ago on Mon Aug  9 10:31:26 2021.
Dependencies resolved.
======================================================================================================================================================
 Package                                    Architecture                  Version                                 Repository                     Size
======================================================================================================================================================
Installing:
 postgresql13-server                        x86_64                        13.3-2PGDG.rhel8                        pgdg13                        5.5 M
Installing dependencies:
 libicu                                     x86_64                        60.3-2.el8_1                            baseos                        8.8 M
 postgresql13                               x86_64                        13.3-2PGDG.rhel8                        pgdg13                        1.5 M
 postgresql13-libs                          x86_64                        13.3-2PGDG.rhel8                        pgdg13                        413 k

Transaction Summary
======================================================================================================================================================
Install  4 Packages

Total download size: 16 M
Installed size: 63 M
Downloading Packages:
(1/4): postgresql13-libs-13.3-2PGDG.rhel8.x86_64.rpm                                                                   69 kB/s | 413 kB     00:06    
(2/4): postgresql13-13.3-2PGDG.rhel8.x86_64.rpm                                                                        92 kB/s | 1.5 MB     00:16    
(3/4): postgresql13-server-13.3-2PGDG.rhel8.x86_64.rpm                                                                158 kB/s | 5.5 MB     00:35    
(4/4): libicu-60.3-2.el8_1.x86_64.rpm                                                                                 190 kB/s | 8.8 MB     00:47    
------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                 345 kB/s |  16 MB     00:48     
warning: /var/cache/dnf/pgdg13-e81daebfc8b779ec/packages/postgresql13-13.3-2PGDG.rhel8.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 442df0f8: NOKEY
PostgreSQL 13 for RHEL/CentOS 8 - x86_64                                                                              1.6 MB/s | 1.7 kB     00:00    
Importing GPG key 0x442DF0F8:
 Userid     : "PostgreSQL RPM Building Project <[email protected]>"
 Fingerprint: 68C9 E2B9 1A37 D136 FE74 D176 1F16 D2E1 442D F0F8
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                              1/1 
  Installing       : postgresql13-libs-13.3-2PGDG.rhel8.x86_64                                                                                    1/4 
  Running scriptlet: postgresql13-libs-13.3-2PGDG.rhel8.x86_64                                                                                    1/4 
  Installing       : libicu-60.3-2.el8_1.x86_64                                                                                                   2/4 
  Running scriptlet: libicu-60.3-2.el8_1.x86_64                                                                                                   2/4 
  Installing       : postgresql13-13.3-2PGDG.rhel8.x86_64                                                                                         3/4 
  Running scriptlet: postgresql13-13.3-2PGDG.rhel8.x86_64                                                                                         3/4 
  Running scriptlet: postgresql13-server-13.3-2PGDG.rhel8.x86_64                                                                                  4/4 
  Installing       : postgresql13-server-13.3-2PGDG.rhel8.x86_64                                                                                  4/4 
  Running scriptlet: postgresql13-server-13.3-2PGDG.rhel8.x86_64                                                                                  4/4 
  Verifying        : libicu-60.3-2.el8_1.x86_64                                                                                                   1/4 
  Verifying        : postgresql13-13.3-2PGDG.rhel8.x86_64                                                                                         2/4 
  Verifying        : postgresql13-libs-13.3-2PGDG.rhel8.x86_64                                                                                    3/4 
  Verifying        : postgresql13-server-13.3-2PGDG.rhel8.x86_64                                                                                  4/4 

Installed:
  libicu-60.3-2.el8_1.x86_64                          postgresql13-13.3-2PGDG.rhel8.x86_64         postgresql13-libs-13.3-2PGDG.rhel8.x86_64        
  postgresql13-server-13.3-2PGDG.rhel8.x86_64        

Complete!
[root@unixcop ~]# 

Sie müssen den folgenden Befehl einmal ausführen, um die Postgres-Datenbank zu initialisieren.

[root@unixcop ~]# /usr/pgsql-13/bin/postgresql-13-setup initdb
Initializing database ... OK

[root@unixcop ~]# 

Aktivieren, starten und prüfen Sie mit diesen Befehlen auch den Status der Postgres-Datenbank.

[root@unixcop ~]# systemctl start postgresql-13
[root@unixcop ~]# systemctl enable postgresql-13
Created symlink /etc/systemd/system/multi-user.target.wants/postgresql-13.service → /usr/lib/systemd/system/postgresql-13.service.
[root@unixcop ~]# systemctl status postgresql-13
● postgresql-13.service - PostgreSQL 13 database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql-13.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2021-08-09 08:21:20 EDT; 21s ago
     Docs: https://www.postgresql.org/docs/13/static/
 Main PID: 2178 (postmaster)
    Tasks: 8 (limit: 11426)
   Memory: 16.8M
   CGroup: /system.slice/postgresql-13.service
           ├─2178 /usr/pgsql-13/bin/postmaster -D /var/lib/pgsql/13/data/
           ├─2179 postgres: logger 
           ├─2181 postgres: checkpointer 
           ├─2182 postgres: background writer 
           ├─2183 postgres: walwriter 
           ├─2184 postgres: autovacuum launcher 
           ├─2185 postgres: stats collector 
           └─2186 postgres: logical replication launcher 

Aug 09 08:21:20 unixcop systemd[1]: Starting PostgreSQL 13 database server...
Aug 09 08:21:20 unixcop postmaster[2178]: 2021-08-09 08:21:20.237 EDT [2178] LOG:  redirecting log output to logging collector process
Aug 09 08:21:20 unixcop postmaster[2178]: 2021-08-09 08:21:20.237 EDT [2178] HINT:  Future log output will appear in directory "log".
Aug 09 08:21:20 unixcop systemd[1]: Started PostgreSQL 13 database server.
[root@unixcop ~]# systemctl is-enabled postgresql-13
enabled
[root@unixcop ~]# 

Überprüfen Sie auch die Version des installierten PostgreSQL .

[root@unixcop ~]# psql -V
psql (PostgreSQL) 13.3
[root@unixcop ~]# 

Wechseln Sie zu postgres user und verbinden Sie sich mit psql Shell, um das Admin-Benutzerpasswort festzulegen.

[root@unixcop ~]# su - postgres
[postgres@unixcop ~]$ psql
psql (13.3)
Type "help" for help.

postgres=# ALTER USER postgres WITH PASSWORD 'unixcop';
ALTER ROLE
postgres=# \q
[postgres@unixcop ~]$ exit
logout
[root@unixcop ~]# 

Konfigurieren Sie den Netzwerkzugriff für den Postgres-Datenbankdienst

Möglicherweise stellen Sie fest, dass der PostgreSQL-Dienst zunächst nur auf der Localhost-Schnittstelle ausgeführt wird.

Sie müssen also die PostgreSQL-Konfigurationsdatei in vim bearbeiten Texteditor.

# vi /var/lib/pgsql/13/data/postgresql.conf

Suchen Sie darin nach folgender Richtlinie.

# listen_addresses = 'localhost'

Und ersetzen Sie es durch die folgende Direktive.

listen_addresses = '*'

Ihr Postgres-Datenbankdienst ist jetzt so konfiguriert, dass er auf allen Netzwerkschnittstellen lauscht.

Erlauben Sie Netzwerk-Clients den Zugriff auf den PostgreSQL-Dienst in pg_hba.conf Datei.

# echo "host all all 192.168.13.0/24 md5" >> /var/lib/pgsql/13/data/pg_hba.conf

Starten Sie den Postgres-Datenbankdienst neu, um die Änderungen zu übernehmen.

# systemctl restart postgresql-13.service

Der Postgres-Dienst läuft jetzt auf allen Netzwerkschnittstellen.

Konfigurieren Sie die Linux-Firewall für die Postgres-Datenbank

Wir werden den Postgre-Dienst mit dem Befehl firewall-cmd zulassen.

[root@unixcop ~]# firewall-cmd --permanent --add-service=postgresql
success
[root@unixcop ~]# firewall-cmd --reload
success
[root@unixcop ~]# 

Der Postgres-Datenbankserver wurde also auf dem Linux-Server installiert.

Installation des pgAdmin Yum-Repositorys auf CentOS 8

pgAdmin ist ein beliebtes Webinterface zur Datenbankverwaltung von PostgreSQL-Datenbanken.

Obwohl pgAdmin auch in den offiziellen Yum-Repositories von PostgreSQL enthalten ist. Aber es funktioniert nicht auf unserem CentOS 8-Server.

Daher werden wir die neueste stabile Version von pgAdmin installieren aus dem offiziellen Yum-Repository von pgAdmin.

Da wir dieses yum-Repository hinzufügen werden, müssen Sie zuerst die PostgreSQL-yum-Repositorys von Ihrem Linux-Server entfernen.

# dnf remove -y pgdg-redhat-repo

Fügen Sie das offizielle yum-Repository von pgAdmin in Ihrem Linux-Betriebssystem mit dem Befehl hinzu:

[root@unixcop ~]#  dnf install -y https://ftp.postgresql.org/pub/pgadmin/pgadmin4/yum/pgadmin4-redhat-repo-1-1.noarch.rpm
Last metadata expiration check: 1 day, 0:04:44 ago on Sun Aug  8 10:39:31 2021.
pgadmin4-redhat-repo-1-1.noarch.rpm                                                                                   5.6 kB/s | 6.6 kB     00:01    
Dependencies resolved.
======================================================================================================================================================
 Package                                      Architecture                   Version                       Repository                            Size
======================================================================================================================================================
Installing:
 pgadmin4-redhat-repo                         noarch                         1-1                           @commandline                         6.6 k

Transaction Summary
======================================================================================================================================================
Install  1 Package

Total size: 6.6 k
Installed size: 4.0 k
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                              1/1 
  Installing       : pgadmin4-redhat-repo-1-1.noarch                                                                                              1/1 
  Verifying        : pgadmin4-redhat-repo-1-1.noarch                                                                                              1/1 

Installed:
  pgadmin4-redhat-repo-1-1.noarch                                                                                                                     

Complete!
[root@unixcop ~]# 

Außerdem erfordert pgAdmin einige Softwarepakete, die in den Standard-yum-Repositories nicht verfügbar sind.

Verwenden Sie den Befehl dnf und installieren Sie das EPEL yum-Repository.

# dnf install -y epel-release

Erstellen Sie den Cache für neu installierte Yum-Repositories mit dem Befehl:

[root@unixcop ~]# dnf makecache
CentOS Linux 8 - AppStream                                                                                            2.6 kB/s | 4.3 kB     00:01    
CentOS Linux 8 - BaseOS                                                                                               5.4 kB/s | 3.9 kB     00:00    
CentOS Linux 8 - Extras                                                                                               2.8 kB/s | 1.5 kB     00:00    
Extra Packages for Enterprise Linux Modular 8 - x86_64                                                                 21 kB/s |  36 kB     00:01    
Extra Packages for Enterprise Linux 8 - x86_64                                                                         22 kB/s |  33 kB     00:01    
pgadmin4                                                                                                              704  B/s | 833  B     00:01    
pgadmin4                                                                                                              3.8 MB/s | 3.8 kB     00:00    
Importing GPG key 0x210976F2:
 Userid     : "Package Manager (Package Signing Key) <[email protected]>"
 Fingerprint: E869 7E2E EF76 C02D 3A63 3277 8881 B2A8 2109 76F2
 From       : /etc/pki/rpm-gpg/PGADMIN_PKG_KEY
Is this ok [y/N]: y
pgadmin4                                                                                                              117 kB/s | 441 kB     00:03    
Metadata cache created.

Installieren der pgAdmin-Webbenutzeroberfläche

Sie können jetzt pgAdmin installieren, indem Sie :

verwenden
# dnf install -y pgadmin4

WICHTIGER HINWEIS:

Um SELinux-Richtlinien zu konfigurieren, erfordert das pgAdmin-Setup-Skript semanage Befehl, der in policycoreutils-python-utils-Paketen. bereitgestellt wird Daher sollten Sie es installieren, bevor Sie das pgAdmin-Setup-Skript ausführen.

Sie können auch diesen Link besuchen, um dieses Problem korrekt zu beheben. So beheben Sie den Fehler „semanage command“ Not Found in CentOS

# dnf install -y policycoreutils-python-utils

Die pgAdmin-Software wird mit einem gut geschriebenen Konfigurationsskript geliefert, um den pgAdmin-Webdienst zu konfigurieren. Führen Sie es aus, um einen Administratorbenutzer und einen Apache-Webserver zu erstellen, um den pgAdmin-Webdienst bereitzustellen.

[root@unixcop ~]# /usr/pgadmin4/bin/setup-web.sh
Setting up pgAdmin 4 in web mode on a Redhat based platform...
Creating configuration database...
NOTE: Configuring authentication for SERVER mode.

Enter the email address and password to use for the initial pgAdmin user account:

Email address: [email protected]
Password: 
Retype password:
pgAdmin 4 - Application Initialisation
======================================

Creating storage and log directories...
Configuring SELinux...

The Apache web server is not running. We can enable and start the web server for you to finish pgAdmin 4 installation. Continue (y/n)? y
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
Apache successfully enabled.
Apache successfully started.
You can now start using pgAdmin 4 in web mode at http://127.0.0.1/pgadmin4
[root@unixcop ~]# 

Starten, aktivieren und prüfen Sie den Status des httpd-Dienstes.

[root@unixcop ~]# systemctl start httpd
[root@unixcop ~]# systemctl enable httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
[root@unixcop ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2021-08-09 08:48:49 EDT; 16s ago
     Docs: man:httpd.service(8)
 Main PID: 3881 (httpd)
   Status: "Running, listening on: port 80"
    Tasks: 241 (limit: 11426)
   Memory: 44.2M
   CGroup: /system.slice/httpd.service
           ├─3881 /usr/sbin/httpd -DFOREGROUND
           ├─3882 /usr/sbin/httpd -DFOREGROUND
           ├─3883 /usr/sbin/httpd -DFOREGROUND
           ├─3884 /usr/sbin/httpd -DFOREGROUND
           ├─3885 /usr/sbin/httpd -DFOREGROUND
           └─3886 /usr/sbin/httpd -DFOREGROUND

Aug 09 08:48:47 unixcop systemd[1]: Starting The Apache HTTP Server...
Aug 09 08:48:47 unixcop httpd[3881]: [Mon Aug 09 08:48:47.749981 2021] [so:warn] [pid 3881:tid 140142522952000] AH01574: module wsgi_module is alread>
Aug 09 08:48:49 unixcop httpd[3881]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::20c:29ff:feca>
Aug 09 08:48:49 unixcop systemd[1]: Started The Apache HTTP Server.
Aug 09 08:48:52 unixcop httpd[3881]: Server configured, listening on: port 80
lines 1-21/21 (END)

Konfigurieren Sie die Linux-Firewall, um eingehenden Datenverkehr zum Apache-Webserver zuzulassen

[root@unixcop ~]# firewall-cmd --permanent --add-service=http
success
[root@unixcop ~]# firewall-cmd --reload
success
[root@unixcop ~]# 

Öffnen Sie die URL http://Ihre_IP-Adresse/pgadmin4/ in einem Webbrowser.

Melden Sie sich bei pgAdmin als Admin-Benutzer an, den wir von setup-web.sh erstellt haben Skript.

Um Ihren PostgreSQL-Datenbankserver zum pgAdmin-Inventar hinzuzufügen, klicken Sie auf „Neuen Server hinzufügen“.

Geben Sie den Servernamen ein und klicken Sie auf „Verbindung“ Registerkarte.

Geben Sie die Datenbankverbindungsinformationen in diesem von Ihnen erstellten Dialogfeld ein.

Klicken Sie dann auf „Speichern“.

Unser Postgres-Datenbankserver wurde in pgAdmin hinzugefügt. Sie können einen Baum Ihres Datenbankservers im linken Seitenbereich sehen.

Schlussfolgerung

In diesem Tutorial haben Sie gelernt, wie Sie PostgreSQL mit pgAdmin auf einem CentOS 8-Server installieren.


Cent OS
  1. So installieren Sie CentOS 8 (mit Screenshots)

  2. So installieren Sie PostgreSQL unter CentOS 7

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

  4. So installieren und konfigurieren Sie Postgres 13 auf Centos 8

  5. So installieren Sie Postgres 14 auf Rocky Linux 8/Centos 8

So installieren Sie PostgreSQL in 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

So installieren Sie pgAdmin unter CentOS 7

So installieren Sie pgAdmin unter CentOS 8