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

Cara Menginstal PostgreSQL di CentOS 8

PostgreSQL atau Postgres adalah sistem manajemen basis data relasional tujuan umum sumber terbuka dengan banyak fitur canggih yang memungkinkan Anda membangun lingkungan yang toleran terhadap kesalahan atau aplikasi kompleks.

Dalam panduan ini, kita akan membahas cara menginstal server database PostgreSQL di CentOS 8. Sebelum memilih versi mana yang akan diinstal, pastikan aplikasi Anda mendukungnya.

Kami juga akan mengeksplorasi dasar-dasar administrasi database PostgreSQL.

Prasyarat #

Untuk dapat menginstal paket, Anda harus login sebagai root atau pengguna dengan hak sudo.

Menginstal PostgreSQL di CentOS 8 #

Pada saat artikel ini ditulis, ada dua versi server PostgreSQL yang tersedia untuk diinstal dari repositori CentOS standar:versi 9.6 dan 10.0.

Untuk membuat daftar aliran modul PostgreSQL yang tersedia, ketik:

dnf module list postgresql

Outputnya menunjukkan bahwa modul postgresql tersedia dengan dua aliran. Setiap aliran memiliki dua profil:server dan klien. Streaming 10 dengan server profil adalah yang default:

CentOS-8 - AppStream
Name          Stream    Profiles              Summary                                                 
postgresql    10 [d]    client, server [d]    PostgreSQL server and client module                     
postgresql    9.6       client, server [d]    PostgreSQL server and client module 
  1. Untuk menginstal aliran default, server PostgreSQL versi 10.0 ketik:

    sudo dnf install @postgresql:10
  2. Untuk menginstal server PostgreSQL versi 9.6 ketik:

    sudo dnf install @postgresql:9.6 

Anda mungkin juga ingin 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 initdb
Initializing database ... OK

Mulai layanan PostgreSQL dan aktifkan untuk memulai saat boot:

sudo systemctl enable --now postgresql

Gunakan psql alat untuk memverifikasi instalasi dengan menghubungkan ke server database PostgreSQL dan mencetak versinya:

sudo -u postgres psql -c "SELECT version();"
PostgreSQL 10.6 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 8.2.1 20180905 (Red Hat 8.2.1-3), 64-bit

Peran PostgreSQL dan Metode Otentikasi #

PostgreSQL menangani izin akses database menggunakan konsep peran. Peran dapat mewakili pengguna basis data atau sekelompok pengguna basis data.

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

  • Kepercayaan - Peran dapat terhubung tanpa kata sandi, selama kondisi yang ditentukan dalam pg_hba.conf terpenuhi.
  • Kata Sandi - Peran dapat terhubung dengan memberikan kata sandi. Kata sandi dapat disimpan sebagai scram-sha-256 , md5 , dan password (teks-jelas).
  • 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.

Otentikasi klien PostgreSQL didefinisikan dalam file konfigurasi bernama pg_hba.conf . Secara default, untuk koneksi lokal, PostgreSQL diatur untuk menggunakan metode otentikasi rekan.

postgres pengguna secara otomatis dibuat ketika Anda menginstal server PostgreSQL. Pengguna ini adalah pengguna super untuk instance PostgreSQL. Ini setara dengan pengguna root MySQL.

Untuk masuk ke server PostgreSQL sebagai postgres pengguna, pertama-tama alihkan ke pengguna, lalu akses prompt PostgreSQL menggunakan psql utilitas:

sudo su - postgrespsql

Dari sini, Anda dapat berinteraksi dengan instance PostgreSQL. Untuk keluar dari shell PostgreSQL, ketik:

\q

Anda juga dapat mengakses perintah PostgreSQL tanpa mengalihkan pengguna dengan sudo perintah:

sudo -u postgres psql

Biasanya postgres pengguna hanya digunakan dari localhost.

Membuat Peran dan Basis Data PostgreSQL #

Hanya pengguna super dan peran dengan CREATEROLE hak istimewa dapat membuat peran baru.

Dalam contoh berikut, kita akan membuat peran baru bernama john , database bernama johndb , dan berikan hak istimewa pada database.

  1. Pertama, sambungkan ke shell PostgreSQL:

    sudo -u postgres psql
  2. Buat peran PostgreSQL baru menggunakan perintah berikut:

    CREATE ROLE john;
  3. Buat basis data baru:

    CREATE DATABASE johndb;
  4. Berikan hak istimewa kepada pengguna di database dengan menjalankan kueri berikut:

    GRANT ALL PRIVILEGES ON DATABASE johndb TO john;

Aktifkan akses jarak jauh ke server PostgreSQL #

Secara default, server PostgreSQL hanya mendengarkan pada antarmuka lokal 127.0.0.1 .

Untuk mengaktifkan akses jarak jauh ke server PostgreSQL Anda, buka file konfigurasi:

sudo nano /var/lib/pgsql/data/postgresql.conf

Gulir ke bawah ke CONNECTIONS AND AUTHENTICATION bagian dan tambahkan/edit baris berikut:

/var/lib/pgsql/data/postgresql.conf
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'     # what IP address(es) to listen on;

Simpan file dan mulai ulang layanan PostgreSQL dengan:

sudo systemctl restart postgresql

Verifikasi perubahan dengan ss utilitas:

ss -nlt | grep 5432
LISTEN   0    128    0.0.0.0:5432    0.0.0.0:*       
LISTEN   0    128    [::]:5432      [::]:*  

Output di atas menunjukkan bahwa server PostgreSQL mendengarkan pada port default di semua antarmuka (0.0.0.0).

Langkah terakhir adalah mengkonfigurasi server untuk menerima koneksi jarak jauh dengan mengedit pg_hba.conf berkas.

Berikut adalah beberapa contoh yang menunjukkan kasus penggunaan yang berbeda:

/var/lib/pgsql/data/pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# The user jane can access all databases from all locations using an md5 password
host    all             jane            0.0.0.0/0                md5

# The user jane can access only the janedb database from all locations using an md5 password
host    janedb          jane            0.0.0.0/0                md5

# The user jane can access all databases from a trusted location (192.168.1.134) without a password
host    all             jane            192.168.1.134            trust

Cent OS
  1. Cara Menginstal PostgreSQL di CentOS 7

  2. Cara Menginstal Server Teamspeak 3 di CentOS 8

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

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

  2. Cara Menginstal PostgreSQL di CentOS 7

  3. Cara Menginstal Server PostgreSQL di CentOS 8

  1. Cara Menginstal Server Minecraft di CentOS 7

  2. Cara Menginstal Nginx di CentOS 8

  3. Cara Menginstal MariaDB di CentOS 8