PostgreSQL atau Postgres adalah sistem manajemen basis data relasional open-source tujuan umum dengan banyak fitur canggih yang memungkinkan Anda membuat aplikasi web yang kompleks.
Dalam tutorial ini, kami akan menunjukkan kepada Anda dua metode berbeda tentang cara menginstal PostgreSQL di mesin CentOS 7 Anda. Metode pertama akan memandu Anda melalui langkah-langkah yang diperlukan untuk menginstal PostgreSQL v9.2.23 dari repositori CentOS, sedangkan metode kedua akan menunjukkan cara menginstal PostgreSQL versi terbaru dari repositori resmi PostgreSQL.
Jika aplikasi Anda tidak memerlukan versi terbaru, sebaiknya gunakan metode pertama dan instal PostgreSQL dari repositori CentOS.
Kami juga akan mengeksplorasi dasar-dasar administrasi database PostgreSQL.
Prasyarat #
Sebelum melanjutkan tutorial ini, pastikan Anda masuk sebagai pengguna dengan hak istimewa sudo.
Instal PostgreSQL dari repositori CentOS #
Pada saat artikel ini ditulis, versi PostgreSQL terbaru yang tersedia dari repositori CentOS adalah PostgreSQL versi 9.2.23.
Untuk menginstal PostgreSQL di server CentOS Anda, ikuti langkah-langkah di bawah ini:
-
Menginstal PostgreSQL
Untuk menginstal server PostgreSQL bersama dengan paket kontribusi PostgreSQL yang menyediakan beberapa fitur tambahan untuk database PostgreSQL cukup ketik:
sudo yum install postgresql-server postgresql-contrib
-
Inisialisasi Basis Data
Inisialisasi database PostgreSQL dengan perintah berikut:
sudo postgresql-setup initdb
Initializing database ... OK
-
Memulai PostgreSQL
Untuk memulai layanan PostgreSQL dan mengaktifkannya untuk memulai saat boot cukup ketik:
sudo systemctl start postgresql
sudo systemctl enable postgresql
-
Memverifikasi Instalasi PostgreSQL
Untuk memverifikasi instalasi, kami akan mencoba menghubungkan ke server database PostgreSQL menggunakan
psql
alat dan cetak versi server:sudo -u postgres psql -c "SELECT version();"
PostgreSQL 9.2.23 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16), 64-bit (1 row)
Instal PostgreSQL dari repositori PostgreSQL #
Pada saat artikel ini ditulis, versi terbaru PostgreSQL yang tersedia dari repositori resmi PostgreSQL adalah PostgreSQL versi 10.4. Sebelum melanjutkan ke langkah berikutnya, Anda harus mengunjungi halaman PostgreSQL Yum Repository dan memeriksa apakah ada versi baru yang tersedia.
Ikuti langkah-langkah di bawah ini untuk menginstal versi PostgreSQL terbaru di server CentOS Anda :
-
Mengaktifkan repositori PostgreSQL
Untuk mengaktifkan repositori PostgreSQL cukup instal repositori
rpm
berkas:sudo yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm
-
Menginstal PostgreSQL
Setelah repositori diaktifkan, instal server PostgreSQL dan paket kontribusi PostgreSQL dengan:
sudo yum install postgresql10-server postgresql10-contrib
-
Inisialisasi Basis Data
Untuk menginisialisasi tipe database PostgreSQL:
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
Initializing database ... OK
-
Memulai PostgreSQL
Untuk memulai layanan PostgreSQL dan mengaktifkannya untuk memulai saat boot, ketik:
sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10
-
Memverifikasi Instalasi PostgreSQL
Untuk memverifikasi instalasi, kami akan mencoba menghubungkan ke server database PostgreSQL menggunakan
psql
alat dan cetak versi server:sudo -u postgres /usr/pgsql-10/bin/psql -c "SELECT version();"
PostgreSQL 10.4 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit (1 row)
Peran PostgreSQL dan Metode Otentikasi #
Izin akses database dalam PostgreSQL ditangani dengan 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 - Dengan metode ini, peran dapat terhubung tanpa kata sandi, selama kriteria 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
danpassword
(teks-jelas). - Ident - Metode ini 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 dibuat secara otomatis saat Anda menginstal PostgreSQL. Pengguna ini adalah pengguna super untuk instance PostgreSQL dan setara dengan pengguna root MySQL.
Untuk masuk ke server PostgreSQL sebagai pengguna postgres terlebih dahulu, Anda harus beralih ke userpostgres lalu mengakses prompt PostgreSQL menggunakan psql
utilitas:
sudo su - postgres
psql
Dari sini, Anda dapat berinteraksi dengan instance PostgreSQL Anda. Untuk keluar dari shell PostgreSQL, ketik:
\q
Anda juga dapat mengakses perintah PostgreSQL tanpa mengalihkan pengguna menggunakan sudo
perintah:
sudo -u postgres psql
postgres
pengguna biasanya hanya digunakan dari host lokal dan disarankan untuk tidak menyetel sandi untuk pengguna ini.
psql
biner yaitu /usr/pgsql-10/bin/psql
. 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.
-
Hubungkan ke Shell PostgreSQL
sudo -u postgres psql
-
Buat Peran PostgreSQL baru
Perintah berikut akan membuat peran baru bernama "john":
CREATE ROLE john;
-
Buat Database PostgreSQL baru
Buat database baru bernama “johndb” menggunakan
createdb
perintah:CREATE DATABASE johndb;
-
Berikan hak istimewa
Untuk memberikan izin kepada
john
user pada database yang kita buat pada langkah sebelumnya, jalankan query 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 postgresql.conf
dan tambahkan listen_addresses = '*'
di CONNECTIONS AND AUTHENTICATION
bagian.
sudo vim /var/lib/pgsql/data/postgresql.conf
Jika Anda menjalankan PostgreSQL versi 10, jalur ke file adalah /var/lib/pgsql/10/data/postgresql.conf
./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
Jika Anda menjalankan PostgreSQL versi 10, mulai ulang layanan PostgreSQL dengan systemctl restart postgresql-10
.
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 [::]:*
Seperti yang Anda lihat dari output di atas, server PostgreSQL mendengarkan 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 will be able to access all databases from all locations using a md5 password
host all jane 0.0.0.0/0 md5
# The user jane will be able to access only the janedb from all locations using a md5 password
host janedb jane 0.0.0.0/0 md5
# The user jane will be able to access all databases from a trusted location (192.168.1.134) without a password
host all jane 192.168.1.134 trust
Jika Anda menjalankan PostgreSQL versi 10, path lengkap ke file adalah /var/lib/pgsql/10/data/pg_hba.conf
.