Cara Install pgAdmin4 di CentOS 8
pgAdmin adalah sebuah proyek open source yang dapat digunakan secara gtratis yang dirilis dibawah lisensi PostgreSQL/Artistic licence. pgAdmin dapat Anda gunakan untuk pengelolaan database postgresql, pgadmin layaknya phpmyadmin jika di database mariadb atau mysql.
pgAdmin dapat diinstall di berbagai macam sistem operasi mulai dari Windows, Linux, MacOS.
Pada tutorial kali ini kami akan melakukan instalasi pgAdmin versi 4 di CentOS 8 serta bagaimana cara mengkoneksikan antara pgAdmin dengan database postgresql.
Sebelum mengikuti tutorial kali ini pastikan Anda sudah install terlebih dahulu postgresql nya: Cara Install PostgreSQL di CentOS 8
Untuk instalasi pgAdmin pertama kali yang harus kita lakukan yaitu install epel repository terlebih dahulu.
1
2
[root@pg1 ~]#
[root@pg1 ~]# dnf install epel-release -y
Karena pgAdmin akan diakses melalui web browser maka kita perlu install terlebih dahulu web server yang akan digunakna, disini kami mengunakan apache web server.
1
2
[root@pg1 ~]#
[root@pg1 ~]# dnf install httpd -y
Start apache dan pastikan statusnya running
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@pg1 ~]# systemctl start httpd; systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: reloading (reload) since Fri 2020-09-04 19:00:09 UTC; 19ms ago
Docs: man:httpd.service(8)
Main PID: 7464 (httpd)
Status: "Reading configuration..."
Tasks: 1 (limit: 11328)
Memory: 3.2M
CGroup: /system.slice/httpd.service
└─7464 /usr/sbin/httpd -DFOREGROUND
Sep 04 19:00:03 pg1.nurhamim.my.id systemd[1]: Starting The Apache HTTP Server...
Sep 04 19:00:09 pg1.nurhamim.my.id systemd[1]: Started The Apache HTTP Server.
[root@pg1 ~]#
Install repository postgresql
1
2
[root@pg1 ~]#
[root@pg1 ~]# dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Disable module appstream default postgresql di CentOS 8
1
2
3
[root@pg1 ~]#
[root@pg1 ~]# dnf -qy module disable postgresql
[root@pg1 ~]#
Install pgAdmin4 menggunakan command berikut
1
2
[root@pg1 ~]#
[root@pg1 ~]# dnf install pgadmin4 -y
Pindah ke direktori apache dan copy sample config pgadmin4
1
2
3
4
5
[root@pg1 ~]#
[root@pg1 ~]# cd /etc/httpd/conf.d/
[root@pg1 conf.d]#
[root@pg1 conf.d]# cp pgadmin4.conf.sample pgadmin4.conf
[root@pg1 conf.d]#
Enable apache dan pastikan status nya running
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@pg1 conf.d]# systemctl enable --now httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
[root@pg1 conf.d]#
[root@pg1 conf.d]# systemctl status httpd -l
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2020-09-04 19:00:09 UTC; 7min ago
Docs: man:httpd.service(8)
Main PID: 7464 (httpd)
Status: "Running, listening on: port 80"
Tasks: 213 (limit: 11328)
Memory: 24.6M
CGroup: /system.slice/httpd.service
├─7464 /usr/sbin/httpd -DFOREGROUND
├─7467 /usr/sbin/httpd -DFOREGROUND
├─7468 /usr/sbin/httpd -DFOREGROUND
├─7469 /usr/sbin/httpd -DFOREGROUND
└─7470 /usr/sbin/httpd -DFOREGROUND
Sep 04 19:00:03 pg1.nurhamim.my.id systemd[1]: Starting The Apache HTTP Server...
Sep 04 19:00:09 pg1.nurhamim.my.id systemd[1]: Started The Apache HTTP Server.
Sep 04 19:00:14 pg1.nurhamim.my.id httpd[7464]: Server configured, listening on: port 80
[root@pg1 conf.d]#
Membuat direktori lib dan log untuk pgAdmin4
1
2
[root@pg1 conf.d]# mkdir -p /var/lib/pgadmin4
[root@pg1 conf.d]# mkdir -p /var/log/pgadmin4
Mendeklarasi lokasi / path file log, database SQLite, database session dan penyimpanan dalam file konfigurasi Python untuk pgAdmin dalam file
1
2
[root@pg1 conf.d]#
[root@pg1 conf.d]# vim /usr/lib/python3.6/site-packages/pgadmin4-web/config_distro.py
Tambahkan file konfigurasi sebagai beriikut
1
2
3
4
5
6
7
HELP_PATH = '/usr/share/doc/pgadmin4-docs/en_US/html'
UPGRADE_CHECK_ENABLED = False
LOG_FILE = '/var/log/pgadmin4/pgadmin4.log'
SQLITE_PATH = '/var/lib/pgadmin4/pgadmin4.db'
SESSION_DB_PATH = '/var/lib/pgadmin4/sessions'
STORAGE_DIR = '/var/lib/pgadmin4/storage'
Jalankan script python berikut untuk setup pgadmin dan membuat username dan password login ke sisi pgadmin
1
2
3
4
5
6
7
8
9
10
11
12
13
[root@pg1 conf.d]#
[root@pg1 conf.d]# python3 /usr/lib/python3.6/site-packages/pgadmin4-web/setup.py
NOTE: Configuring authentication for SERVER mode.
Enter the email address and password to use for the initial pgAdmin user account:
Email address: me@nurhamim.my.id
Password: #Isikan_Password
Retype password: #Konfirmasi_Password
pgAdmin 4 - Application Initialisation
======================================
[root@pg1 conf.d]#
Noted: input email dan password yang akan digunakan untuk login ke sisi pgadmin
Change owner menjadi apache untuk direktori pgadmin di lib dan log yang kita buat sebelumnya.
1
2
3
[root@pg1 conf.d]# chown -R apache:apache /var/lib/pgadmin4
[root@pg1 conf.d]# chown -R apache:apache /var/log/pgadmin4
[root@pg1 conf.d]#
Restart apache
1
2
[root@pg1 conf.d]# systemctl restart httpd
[root@pg1 conf.d]#
Disini kami sudah menyiapkan subdomain yang akan digunakan oleh pgadmin4 yaitu pgadmin4.nurhamim.my.id subdomain tersebut sudah kami arahkan ke public IP instance/VM dengan cara menambahkan A record.
Verifikasi subdomain menggunakan ping
Akses subdomain pgadmin04.nurhamim.my.id/pgadmin4 jika Anda tidak menggunakan domain silakan akses_public_ip_vm/pgadmin4_ hasilnya seperti berikut, silakan input username dan password yang sudah dibuat seeblumnya.
Berikut default tampilan dari dashboard pgadmin4
Untuk menambahkan server database postgre, silakan klik Add New Server
Kemudian, isi name server database postgre Anda
Pindah ke tab connection lalu isikan host/ipaddress server database postgre beserta username dan password nya. Jika sudah klik Save
Saat ini server postgresql Anda sudah ditambahkan ke pgadmin4 dan sudah dapat dikelola atau management database postgresql menggunakan pgadmin.
Gambar diatas hanya sebagai contoh hasil misalnya membuat database, dan membuat tabel di dala database.
Selamat mencoba 😁