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

Cara Menginstal dan Mengonfigurasi Postgres 13 di Centos 8

PostgreSQL, adalah sistem database relasional objek sumber terbuka yang kuat dengan lebih dari 30 tahun pengembangan aktif yang telah membuatnya mendapatkan reputasi yang kuat untuk keandalan, ketahanan fitur, dan kinerja. Postgres, adalah sistem manajemen basis data relasional sumber terbuka dan gratis yang menekankan ekstensibilitas dan kepatuhan SQL. Awalnya bernama POSTGRES, mengacu pada asal-usulnya sebagai penerus database Ingres yang dikembangkan di University of California, Berkeley. PostgreSQL digunakan sebagai penyimpanan data utama atau gudang data untuk banyak aplikasi web, seluler, geospasial, dan analitik. PostgreSQL dapat menyimpan data terstruktur dan tidak terstruktur dalam satu produk.

Periksa ini juga:

  • Izin Postgres – Buat, Perbarui, Hapus Pengguna Basis Data
  • Cara Menginstal dan Mengonfigurasi Postgres 14 di Centos 8
  • Menjalankan Postgresql 14 dengan Docker dan Docker-Compose
  • Cara Menginstal dan Mengonfigurasi Postgres 13 Ubuntu 20.04

Prasyarat

Untuk mengikuti, pastikan Anda memiliki yang berikut:

  1. Server berbasis Centos 8 / Rocky Linux 8 / RHEL 8
  2. Akses root ke server atau pengguna dengan akses root
  3. Akses internet dari server
  4. Pengetahuan dasar terminal Linux

Daftar isi

  1. Pastikan server terbaru
  2. Menginstal dan memulai Server Postgres
  3. Metode Otentikasi Peran dan Basis Data PostgreSQL
  4. Menghubungkan ke database postgres
  5. Mengonfigurasi instance postgres 14 untuk akses jarak jauh
  6. Pengelolaan pengguna

1. Pastikan server terbaru

Sebelum melanjutkan, izinkan kami memastikan bahwa server kami memiliki paket terbaru. Gunakan perintah ini:

$ sudo dnf -y update
Last metadata expiration check: 2:52:07 ago on Wed 06 Oct 2021 01:26:21 AM UTC.
Dependencies resolved.
Nothing to do.
Complete!

Menginstal dan memulai Server Postgres

Buat daftar aliran yang tersedia untuk modul postgresql menggunakan perintah dnf:

dnf module list postgresql

Keluaran:

# dnf module list postgresql

Name                    Stream              Profiles                        Summary
postgresql              9.6                 client, server [d]              PostgreSQL server and client module
postgresql              10 [d]              client, server [d]              PostgreSQL server and client module
postgresql              12                  client, server [d]              PostgreSQL server and client module
postgresql              13                  client, server [d]              PostgreSQL server and client module

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

modul yang ditandai dengan [d] adalah default sehingga menginstal postgres tanpa menentukan Stream akan menginstalnya. Dalam kasus kami, perintah berikut menginstal postgres 10

sudo dnf install @postgresql

Ini adalah versi yang diinstal

$ sudo dnf list installed | grep postgres
postgresql.x86_64                   10.17-1.module_el8.4.0+823+f0dbe136     @appstream
postgresql-server.x86_64            10.17-1.module_el8.4.0+823+f0dbe136     @appstream

Karena itu bukan paket yang saya inginkan, saya akan menghapusnya dengan ini

sudo dnf erase -y @postgresql

Sekarang mari kita instal postgresql 13. Pertama-tama kita akan mereset mdule postgresql untuk memastikan tidak ada yang terinstal.

sudo dnf module reset postgresql

sudo dnf install @postgresql:13

Mari kita juga menginstal paket contrib yang menyediakan beberapa fitur tambahan untuk sistem database PostgreSQL.

sudo dnf install postgresql-contrib

Setelah instalasi selesai, inisialisasi database PostgreSQL dengan perintah berikut:

sudo postgresql-setup postgresql-setup --initdb --unit postgresql

Keluaran:

 * Initializing database in '/var/lib/pgsql/data'
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log

Mulai layanan PostgreSQL dan aktifkan untuk memulai saat boot:

sudo systemctl enable --now postgresql

Periksa status db

# systemctl status postgresql
● postgresql.service - PostgreSQL database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2021-08-05 08:15:07 UTC; 7s ago
  Process: 68683 ExecStartPre=/usr/libexec/postgresql-check-db-dir postgresql (code=exited, status=0/SUCCESS)
 Main PID: 68686 (postmaster)
    Tasks: 8 (limit: 23506)
   Memory: 17.3M
   CGroup: /system.slice/postgresql.service
           ├─68686 /usr/bin/postmaster -D /var/lib/pgsql/data
           ├─68687 postgres: logger
           ├─68689 postgres: checkpointer
           ├─68690 postgres: background writer
           ├─68691 postgres: walwriter
           ├─68692 postgres: autovacuum launcher
           ├─68693 postgres: stats collector
           └─68694 postgres: logical replication launcher

Aug 05 08:15:07 prod-db systemd[1]: Starting PostgreSQL database server...
Aug 05 08:15:07 prod-db postmaster[68686]: 2021-08-05 08:15:07.650 UTC [68686] LOG:  redirecting log output to logging collector process
Aug 05 08:15:07 prod-db postmaster[68686]: 2021-08-05 08:15:07.650 UTC [68686] HINT:  Future log output will appear in directory "log".
Aug 05 08:15:07 prod-db systemd[1]: Started PostgreSQL database server.

Active: active (running) menunjukkan bahwa server postgres kami aktif dan berjalan seperti yang diharapkan.

Verifikasi instalasi dengan menghubungkan ke server database PostgreSQL dan cetak versinya :

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

Keluaran:

                                                  version
------------------------------------------------------------------------------------------------------------
 PostgreSQL 13.3 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 8.3.1 20191121 (Red Hat 8.3.1-5), 64-bit
(1 row)

3. Peran PostgreSQL dan Metode Otentikasi Basis Data

PostgreSQL menggunakan konsep yang disebut roles untuk menangani otentikasi dan otorisasi klien. Secara default, Postgres diatur untuk menggunakan ident authentication , artinya ia mengaitkan peran Postgres dengan akun sistem Unix/Linux yang cocok. Jika ada peran dalam Postgres, nama pengguna Unix/Linux dengan nama yang sama dapat masuk sebagai peran tersebut.

Prosedur instalasi membuat akun pengguna yang disebut postgres yang dikaitkan dengan peran default postgres. Untuk menggunakan PostgreSQL, Anda dapat masuk ke akun tersebut.

PostgreSQL mendukung beberapa metode otentikasi. Metode yang paling umum digunakan adalah:

  • Trust – Peran dapat terhubung tanpa kata sandi, selama kondisi yang ditentukan dalam pg_hba.conf terpenuhi.
  • Password – Peran dapat terhubung dengan memberikan kata sandi. Kata sandi dapat disimpan sebagai scram-sha-256 , md5 , dan password (clear-text ).
  • Ident – Hanya didukung pada koneksi TCP/IP. Ia bekerja dengan mendapatkan nama pengguna sistem operasi klien, dengan pemetaan nama pengguna opsional.
  • Peer – Sama seperti Ident, tetapi hanya didukung pada koneksi lokal.

4. Menghubungkan ke database postgres

Ada beberapa cara untuk terhubung ke server postgres sebagai pengguna postgres:

  1. Dengan Beralih ke postres user
    Beralih ke akun postgres di server Anda dengan mengetik:

    sudo -i -u postgres

    Anda sekarang dapat mengakses prompt Postgres segera dengan mengetik:

    
    [[email protected]-server ~]$ psql
    psql (13.3)
    Type "help" for help.

postgres=#

This will log you into the PostgreSQL prompt, and from here you are free to interact with the database management system right away.

2. By running the command as postgres user

Use this to run the command directly as the postgres user using sudo
```bash
sudo -u postgres psql

5. Mengonfigurasi instance postgres 14 untuk akses jarak jauh

Untuk mencapai ini, kami akan memodifikasi file konfigurasi postgres. Kita perlu membuka file dan menyesuaikan konfigurasi yang diperlukan.

File konfigurasi Postgresql 13 terletak di jalur ini /var/lib/pgsql/data/pg_hba.conf .

Ubah identifikasi rekan menjadi percaya:

sed -i '/^local/s/peer/trust/' /var/lib/pgsql/data/pg_hba.conf

Ubah identifikasi identitas menjadi md5

sed -i '/^host/s/ident/md5/' /var/lib/pgsql/data/pg_hba.conf

Tambahkan blok untuk mengizinkan akses dari mana saja:

Tambahkan konten ini ke file /var/lib/pgsql/data/pg_hba.conf

host    all             all             0.0.0.0/0                md5

Pastikan PostgreSQL mendengarkan *.
Tambahkan baris ini ke konfigurasi di sini /var/lib/pgsql/data/postgresql.conf

listen_addresses='*'

Aktifkan dan mulai ulang server postgresql untuk memuat ulang konfigurasi

sudo systemctl restart postgresql
sudo systemctl enable postgresql

6. Manajemen pengguna

Buat pengguna Super

Mari kita buat pengguna dengan hak pengguna super yang dapat kita gunakan untuk mengelola postgres.

Hubungkan ke DB sebagai peran postres

$ sudo -u postgres psql
psql (13.3)
Type "help" for help.

postgres=#

Buat pengguna super dengan nama root :

CREATE ROLE root WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'passwordhere';

Periksa pengguna apakah itu telah dibuat dan diberikan hak istimewa yang diperlukan:

postgres=# CREATE ROLE root WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'MrBpR89Yskv3hofGLP';
CREATE ROLE
postgres=# \du
                                   List of roles
 Role name |                         Attributes                         | Member of
-----------+------------------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
 root      | Superuser, Create role, Create DB                          | {}

Mengelola Pengguna Aplikasi

Gunakan ini untuk membuat database, buat pengguna, dan berikan pengguna itu semua akses ke database itu:

create database app_db_name;
create user app_user with encrypted password 'dbpassword';
grant all privileges on database app_db_name to app_user;

Lihat panduan komprehensif ini tentang manajemen pengguna dan izin di postgres di sini.

Menghubungkan ke instance dari host jarak jauh

Gunakan perintah ini untuk terhubung ke instance postgres dari mesin lokal:

psql 'postgres://<username>:<password>@<host>:<port>/<db>?sslmode=disable'

# like
psql 'postgres://root:[email protected]:5432/postgres?sslmode=disable'

Kesimpulan

Sampai saat ini kami telah berhasil menginstal Postgresql13 di server Ubuntu, melakukan beberapa konfigurasi dasar kemudian melakukan manajemen pengguna dasar.


Cent OS
  1. Cara Menginstal dan Mengonfigurasi Gitlab di CentOS 8

  2. Cara Menginstal dan Mengonfigurasi Postgres 13 Ubuntu 20.04

  3. Cara Menginstal dan Mengonfigurasi Postgres 14 Ubuntu 20.04

  1. Cara Menginstal dan Mengkonfigurasi VNC di CentOS 7

  2. Cara Menginstal dan Mengonfigurasi Postgres 13 di Centos 8

  3. Cara Menginstal dan Mengonfigurasi Postgres 14 di Fedora 34

  1. Cara Menginstal dan Mengonfigurasi Server NFS di CentOS 8

  2. Cara Menginstal PostgreSQL di CentOS 8

  3. Cara Menginstal dan Mengkonfigurasi VNC di CentOS 8