How to install PostgreSQL 12 server on Centos 8

A simple set of instruction on how to install PostgreSQL 12 on Centos 8.x


Install latest repos for EL-8:

sudo yum -y install

Let’s check if Postgres 12 is listed as an installable server.

dnf module list postgresql | grep 12

If you see the ‘PostgreSQL 12’ option listed, we’re good to go.

Let’s install the PostgreSQL 12 packages:

sudo dnf install @postgresql:12

Initialize the database service:

sudo /usr/pgsql-12/bin/postgresql-12-setup initdb

Let’s enable the database service.

sudo systemctl enable --now postgresql-12

Confirm that the service is running:

$ sudo systemctl status postgresql-12 | grep Active:

On Centos 8, the default firewall service needs to be enabled if you expect to connect to Postgres from a remote computer.

sudo firewall-cmd --add-service=postgresql --permanent && sudo firewall-cmd --reload

Set the password for the PostgreSQL admin user:

$ sudo su - postgres 
~]$ psql -c "alter user postgres with password 'MySecurePassword'" 

Once done, type: exit, to leave Postgres.

If you plan on logging to PostgreSQL 12 from a remote computer, we’ll need to amend the postgresql config file and allow it to listed on all interfaces.

Open this file:

sudo vi /var/lib/pgsql/12/data/pg_hba.conf

And add to it:

# Accept connections from any machine on any trusted subnet
host all all md5
host all all md5

It should look like this, then save it.

Now, configure PostgreSQL to run on the IP address dedicated to the server. Open postgresql.conf

sudo vi /var/lib/pgsql/12/data/postgresql.conf

Then change the directive called: ‘listen_addresses’

Save the file and now restart the PostgreSQL 12 database:

sudo systemctl restart postgresql-12

Let’s try to connect to it, using your PostgreSQL client, in my case HeidiSQL:

And Voila!, we’re connected: