GNU/Linux >> Belajar Linux >  >> Cent OS

Cara Menginstal PostgreSQL dengan pgAdmin di CentOS 8

Pengantar

PostgreSQL adalah RDBMS paling canggih dan pgAdmin adalah UI web untuk Postgres. Di sini, Anda akan melihat cara menginstal PostgreSQL dengan pgAdmin di CentOS / RHEL 8.

Apa itu PostgreSQL?

PostgreSQL (juga dikenal sebagai Postgres ) adalah sistem manajemen basis data relasional (RDBMS) sumber terbuka dan gratis yang menekankan pada ekstensibilitas dan kepatuhan SQL. PostgreSQL awalnya bernama POSTGRES, mengacu pada asalnya sebagai penerus Ingres basis data. Pada tahun 1996, proyek ini diubah namanya menjadi PostgreSQL untuk mencerminkan dukungannya terhadap SQL.

PostgreSQL menampilkan transaksi dengan properti Atomicity, Consistency, Isolation, Durability (ACID), tampilan yang dapat diperbarui secara otomatis, tampilan terwujud, pemicu, kunci asing, dan prosedur tersimpan. Ini dirancang untuk menangani berbagai beban kerja, dari mesin tunggal hingga gudang data atau layanan Web dengan banyak pengguna secara bersamaan. Ini adalah database default untuk macOS Server, dan juga tersedia untuk Linux, FreeBSD, OpenBSD, dan Windows.

Apa itu pgAdmin?

pgAdmin adalah alat administrasi antarmuka pengguna grafis (GUI) sumber terbuka dan gratis untuk server database Postgres.

Selain itu, pgAdmin tersedia di antarmuka desktop dan web. pgAdmin adalah fitur yang kaya dan paling populer di antara alat administrasi lain untuk PostgreSQL.

Perbarui Paket Server Linux

Jadi Perbarui paket server Linux dengan menggunakan dnf perintah.

# dnf update -y

Menginstal Postgres Resmi

Untuk menginstal versi terbaru, kita harus menambahkan repositori yum resmi PostgreSQL di server Linux kita.

[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 ~]# 

Nonaktifkan modul PostgreSQL di repositori yum standar dengan menjalankan perintah berikut.

# dnf -qy module disable postgresql

Menginstal Server Database Postgres di CentOS 8

Jadi Instal server database Postgres 13 (terbaru pada saat penulisan ini) di server Linux Anda dengan menggunakan dnf perintah.

[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 ~]# 

Anda perlu menjalankan perintah berikut sekali untuk menginisialisasi database Postgres.

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

[root@unixcop ~]# 

Aktifkan juga, mulai dan periksa status database Postgres dengan perintah ini.

[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 ~]# 

Periksa juga versi PostgreSQL yang diinstal .

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

Beralih ke postgres pengguna dan sambungkan ke psql shell untuk mengatur kata sandi pengguna admin.

[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 ~]# 

Konfigurasikan Akses Jaringan untuk Layanan Database Postgres

Anda mungkin memperhatikan bahwa layanan PostgreSQL pada awalnya hanya berjalan pada antarmuka localhost.

Jadi Anda harus mengedit file konfigurasi PostgreSQL di vim editor teks.

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

Cari arahan berikut di dalamnya.

# listen_addresses = 'localhost'

Dan ganti dengan arahan berikut.

listen_addresses = '*'

Layanan database Postgres Anda sekarang dikonfigurasi untuk mendengarkan di semua antarmuka jaringan.

Izinkan klien jaringan mengakses layanan PostgreSQL di pg_hba.conf berkas.

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

Mulai ulang layanan database Postgres untuk menerapkan perubahan.

# systemctl restart postgresql-13.service

Layanan Postgres sekarang berjalan di semua antarmuka jaringan.

Konfigurasi Firewall Linux untuk Database Postgres

Kami akan mengizinkan layanan Postgre dengan menggunakan perintah firewall-cmd.

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

Jadi, server database Postgres telah terinstal di server Linux.

Menginstal pgAdmin Yum Repository di CentOS 8

pgAdmin adalah antarmuka web populer untuk administrasi database database PostgreSQL.

Meskipun pgAdmin juga disediakan dalam repositori yum resmi PostgreSQL. Tapi itu tidak bekerja di server CentOS 8 kami.

Oleh karena itu, kami akan menginstal versi stabil terbaru pgAdmin dari repositori yum resmi pgAdmin.

Karena kami akan menambahkan repo yum ini, pertama-tama Anda harus menghapus repositori yum PostgreSQL dari server Linux Anda.

# dnf remove -y pgdg-redhat-repo

Tambahkan repositori yum resmi pgAdmin di sistem operasi Linux Anda dengan perintah:

[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 ~]# 

Juga pgAdmin memerlukan beberapa paket perangkat lunak yang tidak tersedia di repositori standar yum.

Gunakan perintah dnf dan instal repositori EPEL yum.

# dnf install -y epel-release

Buat cache untuk repositori yum yang baru diinstal dengan perintah:

[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.

Menginstal UI Web pgAdmin

Anda sekarang dapat menginstal pgAdmin dengan menggunakan :

# dnf install -y pgadmin4

CATATAN PENTING:

Untuk mengonfigurasi kebijakan SELinux, skrip penyiapan pgAdmin memerlukan semanage perintah, yang disediakan dalam paket policycoreutils-python-utils. Oleh karena itu, Anda harus menginstalnya sebelum menjalankan skrip pengaturan pgAdmin.

Anda juga dapat mengunjungi tautan ini untuk memperbaiki masalah ini dengan benar Cara Memperbaiki 'semanage command' Not Found Error di CentOS

# dnf install -y policycoreutils-python-utils

Perangkat lunak pgAdmin dilengkapi dengan skrip konfigurasi yang ditulis dengan baik untuk mengonfigurasi layanan web pgAdmin. Jalankan untuk membuat pengguna admin dan server web Apache untuk menerapkan layanan web pgAdmin.

[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 ~]# 

Mulai, aktifkan, dan periksa status layanan httpd.

[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)

Konfigurasikan firewall Linux untuk mengizinkan lalu lintas masuk ke server web Apache

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

Buka URL http://your_ip_address/pgadmin4/ di browser web.

Login ke pgAdmin sebagai user admin yang telah kita buat oleh setup-web.sh naskah.

Untuk menambahkan server database PostgreSQL Anda di inventaris pgAdmin, klik “Tambah Server Baru”.

Berikan nama Server dan klik “Koneksi” tab.

Berikan informasi koneksi database di kotak dialog yang Anda buat ini.

Kemudian Klik “Simpan”.

Server database Postgres kami telah ditambahkan di pgAdmin. Anda dapat melihat struktur server database Anda di panel sebelah kiri.

Kesimpulan

Dalam tutorial ini, Anda telah mempelajari cara menginstal PostgreSQL dengan pgAdmin di server CentOS 8.


Cent OS
  1. Cara Menginstal PostgreSQL di CentOS 7

  2. Cara Menginstal PostgreSQL 10 di CentOS 6 / RHEL 6

  3. Cara Menginstal dan Mengonfigurasi Postgres 13 di Centos 8

  1. Cara Menginstal CentOS 8 (dengan Tangkapan Layar)

  2. Cara menginstal server PostgreSQL di RHEL 8 / CentOS 8

  3. Cara Menginstal Postgres 14 di Rocky Linux 8/Centos 8

  1. Cara Menginstal PostgreSQL di CentOS 7

  2. Cara Menginstal PostgreSQL di CentOS 8

  3. Cara Menginstal dan Menggunakan Ruby on Rails dengan PostgreSQL di CentOS 7