YouTube Icon

Code Playground.

How to Install PostgreSQL on CentOS 8


How to Install PostgreSQL on CentOS 8

PostgreSQL or Postgres is an open-source universally useful article social information base administration framework with many progressed highlights that permits you to fabricate shortcoming lenient conditions or complex applications. 

In this guide, we will talk about how to introduce the PostgreSQL information base worker on CentOS 8. Before picking which adaptation to introduce, ensure that your applications uphold it. 

We will likewise investigate the fundamentals of PostgreSQL information base organization. 


To have the option to introduce bundles, you should be signed in as root or client with sudo benefits . 

Installing PostgreSQL on CentOS 8

At the hour of composing this article, there are two adaptations of PostgreSQL worker accessible for establishment from the standard CentOS vaults: rendition 9.6 and 10.0. 

To list the accessible PostgreSQL module streams, type: 

dnf module list postgresql

The yield shows that the postgresql module is accessible with two streams. Each stream has two profiles: worker and customer. Stream 10 with the profile worker is the default one: 

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 

To introduce the default stream, PostgreSQL worker rendition 10.0 sort: 

sudo dnf install @postgresql:10

To introduce the PostgreSQL worker variant 9.6 sort: 

sudo dnf install @postgresql:9.6 

You may likewise need to introduce the contrib bundle which gives a few extra highlights to the PostgreSQL information base framework. 

sudo dnf install postgresql-contrib

When the establishment is finished, introduce the PostgreSQL information base with the accompanying order: 

sudo postgresql-setup initdb
Initializing database ... OK

Start the PostgreSQL administration and empower it to begin on boot: 

sudo systemctl enable --now postgresql

Utilize the psql instrument to check the establishment by associating with the PostgreSQL information base worker and print its form : 

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

PostgreSQL Roles and Authentication Methods

PostgreSQL handles the information base access consents utilizing the idea of jobs. A job can speak to an information base client or a gathering of data set clients. 

PostgreSQL upholds different verification strategies . The most generally utilized techniques are: 

Trust - A job can associate without a secret key, as long as the conditions characterized in the pg_hba.conf are met. 

Secret word - A job can associate by giving a secret phrase. The passwords can be put away as scram-sha-256, md5, and secret key (clear-text). 

Ident - Only upheld on TCP/IP associations. It works by getting the customer's working framework client name, with a discretionary client name planning. 

Companion - Same as Ident, however it is upheld on nearby associations as it were. 

PostgreSQL customer verification is characterized in the setup document named pg_hba.conf. As a matter of course, for nearby associations, PostgreSQL is set to utilize the companion validation strategy. 

The postgres client is naturally made when you introduce the PostgreSQL worker. This client is the superuser for the PostgreSQL case. It is comparable to the MySQL root client. 

To sign in to the PostgreSQL worker as the postgres client, first change to the client and afterward access the PostgreSQL brief utilizing the psql utility: 

sudo su - postgres

From here, you can collaborate with the PostgreSQL case. To exit out of the PostgreSQL shell, type: 


You can likewise get to the PostgreSQL brief without exchanging clients with the sudo order: 

sudo -u postgres psql

Ordinarily the postgres client is utilized uniquely from the localhost. 

Creating PostgreSQL Role and Database

Just superusers and parts with CREATEROLE benefit can make new jobs. 

In the accompanying model, we will make another job named john, an information base named johndb, and award benefits on the data set. 

To begin with, associate with the PostgreSQL shell: 

  1. sudo -u postgres psql
  2. Create a new PostgreSQL role using thr following command:

    create role john;
  3. Create a new database:

    create database johndb;
  4. Grant privileges to the user on the database by running the following query:

    grant all privileges on database johndb to john;

Enable remote access to PostgreSQL server

Naturally, the PostgreSQL worker listens just on the neighborhood interface 

To empower distant admittance to your PostgreSQL worker, open the design record: 

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

Look down to the CONNECTIONS AND AUTHENTICATION area and include/alter the accompanying line: 


# - Connection Settings -

Spare the document and restart the PostgreSQL administration with: 

sudo systemctl restart postgresql

Confirm the progressions with the ss utility: 

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

The yield above shows that the PostgreSQL worker is tuning in on the default port on all interfaces ( 

The last advance is to arrange the worker to acknowledge distant associations by altering the pg_hba.conf document. 

The following are a few models demonstrating diverse use cases: 


# TYPE  DATABASE        USER            ADDRESS                 METHOD

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

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

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


CentOS 8 gives two PostgreSQL adaptations: 9.6 and 10.0. 

For more data on this point visit the PostgreSQL Documentation 

In the event that you hit an issue or have criticism, leave a remark beneath.