SUMMARY: This article covers how to install PostgreSQL on Ubuntu Server for Linux. It goes over four steps for installation:

            1. Enable the PostgreSQL apt repository

           2. Install PostgreSQL on Ubuntu

           3. Connect to PostgreSQL

           4. Log in to the cluster

 

Here, we are going to look at how to install PostgreSQL on Ubuntu Server. 

This post will help you with installing the PostgreSQL database server on your Ubuntu 18.04, Ubuntu 16.04 and Ubuntu 14.04 systems.

 

Step 1 – Enable the PostgreSQL apt repository

PostgreSQL packages are available in the default Ubuntu repository, but other versions of PostgreSQL are also available through the PostgreSQL apt repository.

To use the apt repository according to Ubuntu version, follow these steps:

 

1. Visit the PostgreSQL Ubuntu download site:

 https://www.postgresql.org/download/linux/ubuntu/

 

2. Select your version of Ubuntu and copy the corresponding line for the apt repository.

For Example:

For Ubuntu 18.04 you should select Bionic (18.04):

deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main

 

3. Create the file “/etc/apt/sources.list.d/pgdg.list” and add the corresponding line for the repository in it:

root@pooja-virtual-machine:~# sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'

 

4. Import the repository signing key and update the package lists:

root@pooja-virtual-machine:~# wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - 

 

Step 2 – Install PostgreSQL on Ubuntu

We have added the PostgreSQL official repository to our system, now we need to update the repository list:

root@pooja-virtual-machine:~# sudo apt-get update

 

To install PostgreSQL on Ubuntu, use the apt-get (or other apt-driving) command:

root@pooja-virtual-machine:~# apt-get install postgresql-11

 

Step 3 – Connect to PostgreSQL

During PostgreSQL installation, by default, it creates a user “postgres” and also creates a system account (Operating System User) with the same name “postgres.”  

So to connect to the PostgreSQL server, log in to your system as user “postgres.”

root@pooja-virtual-machine:~# su - postgres

 

Step 4 – Log in to the cluster

On Ubuntu, the cluster is initialized during the installation. You can invoke the below command to find the status of the running PostgreSQL cluster:

root@pooja-virtual-machine:~# ps -ef | grep postgres



postgres   4862      1  0 05:32 ?        00:00:00 /usr/lib/postgresql/11/bin/postgres -D /var/lib/postgresql/11/main -c config_file=/etc/postgresql/11/main/postgresql.conf

postgres   4864   4862  0 05:32 ?        00:00:00 postgres: 11/main: checkpointer   

postgres   4865   4862  0 05:32 ?        00:00:00 postgres: 11/main: background writer   

postgres   4866   4862  0 05:32 ?        00:00:00 postgres: 11/main: walwriter   

postgres   4867   4862  0 05:32 ?        00:00:00 postgres: 11/main: autovacuum launcher   

postgres   4868   4862  0 05:32 ?        00:00:00 postgres: 11/main: stats collector   

postgres   4869   4862  0 05:32 ?        00:00:00 postgres: 11/main: logical replication launcher 

 

Now you can log in to the PostgreSQL cluster and query through the psql client:

postgres@pooja-virtual-machine:~$ /usr/lib/postgresql/11/bin/psql -p 5432

psql (11.5 (Ubuntu 11.5-3.pgdg18.04+1))

Type "help" for help.



postgres=# \l

                             List of databases

   Name    |  Owner   | Encoding | Collate | Ctype |   Access privileges   

-----------+----------+----------+---------+-------+-----------------------

 postgres  | postgres | UTF8     | en_IN   | en_IN | 

 template0 | postgres | UTF8     | en_IN   | en_IN | =c/postgres          +

           |          |          |         |       | postgres=CTc/postgres

 template1 | postgres | UTF8     | en_IN   | en_IN | =c/postgres          +

           |          |          |         |       | postgres=CTc/postgres

(3 rows)

 

Your PostgreSQL installation has been completed successfully.

Reference link for PostgreSQL 11.5 docs:

https://www.postgresql.org/docs/11/index.html