PostgreSQL is a very popular open source Object-Relational database management system (DBMS) created for reliability, efficiency and data integrity guarantee. The development work is now over 30 years and the project has earned it a strong reputation for reliability, feature robustness, and performance. PostgreSQL is used by thousands of companies to power payment transactions, huge website traffic, E-commerce platforms e.t.c. It also enables you to add custom functions developed using programming languages such as Java, Python, C/C and many others.

In this tutorial we will explain how you can install and configure PostgreSQL 13 Database server on Ubuntu 20.04|18.04 Linux server. As of this article update the latest release of PostgreSQL is 13 Beta 12 which is not intended for Production purposes but only for testing.find information about all of the features and changes found in PostgreSQL 13 in the release notes.

Step 1: Update Ubuntu system

We always work on a latest release of OS to make sure there are no old dependency issues. Login to your Ubuntu server and run the following commands to update all the packages installed.

sudo apt update
sudo apt -y upgrade

Once the system has been updated, I recommend you perform a reboot to get the new kernel running incase it was updated.

sudo reboot

Step 2: Add PostgreSQL 13 repository to Ubuntu 20.04 | 18.04

Now that we have updated and rebooted our system, let’s add the APT repository required to pull the packages form the PostgreSQL repository.

sudo apt -y install vim bash-completion wget
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

After importing GPG key, add repository contents to your Ubuntu 20.04|18.04 system:

echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" |sudo tee  /etc/apt/sources.list.d/pgdg.list

Also add testing repository.

echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg-testing main 13" |sudo tee  /etc/apt/sources.list.d/pgdg-testing.list

The repository added contains many different packages including third party addons. They include:

  • postgresql-client
  • postgresql
  • libpq-dev
  • postgresql-server-dev
  • pgadmin packages

Step 3: Install PostgreSQL 13 on Ubuntu 20.04/18.04 Linux

With the repository added we can install the PostgreSQL 13 packages on our Ubuntu 20.04|18.04 Linux server. But first update the package index for the version to be available at the OS level.

sudo apt update

The run the commands below to install PostgreSQL 13 on Ubuntu 20.04 | 18.04 Linux system.

sudo apt install postgresql-13 postgresql-client-13

The PostgreSQL service is started and set to come up after every system reboot.

$ systemctl status postgresql.service 
 ● postgresql.service - PostgreSQL RDBMS
    Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
    Active: active (exited) since Sun 2020-10-07 10:23:46 UTC; 6min ago
  Main PID: 8159 (code=exited, status=0/SUCCESS)
     Tasks: 0 (limit: 2362)
    CGroup: /system.slice/postgresql.service

$ systemctl status [email protected] 

$ systemctl is-enabled postgresql
enabled

Step 4: Test PostgreSQL Connection

During installation, a postgres user is created automatically. This user has full superadmin access to your entire PostgreSQL instance. Before you switch to this account, your logged in system user should have sudo privileges.

sudo su - postgres

Let’s reset this user password to a strong Password we can remember.

psql -c "alter user postgres with password '[email protected]'"

Start PostgreSQL prompt by using the command:

$ psql

Get connection details like below.

$ psql
psql (12.0 (Ubuntu 12.0-1.pgdg18.04 1))
Type "help" for help.

postgres=# conninfo
You are connected to database "postgres" as user "postgres" via socket in "https://computingforgeeks.com/var/run/postgresql" at port "5432".

Let’s create a test database and user to see if it’s working.

postgres=# CREATE DATABASE mytestdb;
CREATE DATABASE
postgres=# CREATE USER mytestuser WITH ENCRYPTED PASSWORD '[email protected]';
CREATE ROLE
postgres=# GRANT ALL PRIVILEGES ON DATABASE mytestdb to mytestuser;
GRANT

List created databases:

postgres=# l
                               List of databases
   Name    |  Owner   | Encoding | Collate |  Ctype  |    Access privileges    
----------- ---------- ---------- --------- --------- -------------------------
 mytestdb  | postgres | UTF8     | C.UTF-8 | C.UTF-8 | =Tc/postgres            
           |          |          |         |         | postgres=CTc/postgres   
           |          |          |         |         | mytestuser=CTc/postgres
 postgres  | postgres | UTF8     | C.UTF-8 | C.UTF-8 | 
 template0 | postgres | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres             
           |          |          |         |         | postgres=CTc/postgres
 template1 | postgres | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres             
           |          |          |         |         | postgres=CTc/postgres
(4 rows)

Connect to database:

postgres-# c mytestdb
You are now connected to database "mytestdb" as user "postgres".

Other PostgreSQL utilities installed such as createuser and createdb can be used to create database and users.

[email protected]:~$ createuser myuser --password
Password:
[email protected]:~$ createdb mydb -O myuser
[email protected]:~$ psql -l 

We can create and connect to a database on PostgreSQL server.

Step 5: Configure remote Connection (Optional)

Installation of PostgreSQL 13 on Ubuntu only accepts connections from localhost. In ideal production environments, you’ll have a central database server and remote clients connecting to it – But of course within a private network (LAN).

To enable remote connections, edit PostgreSQL configuration file:

sudo nano /etc/postgresql/12/main/postgresql.conf 

Uncomment line 59 and change the Listen address to accept connections within your networks.

# Listen on all interfaces
listen_addresses = '*'

# Listen on specified private IP address
listen_addresses = '192.168.10.11'

After the change, restart postgresql service.

sudo systemctl restart postgresql

Confirm Listening addresses.

# netstat  -tunelp | grep 5432
tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN      111        112837     11143/postgres      
tcp6       0      0 :::5432                 :::*                    LISTEN      111        112838     11143/postgres      

Step 6: Install pgAdmin4 Management Tool

If you want to manage your PostgreSQL database server from a web interface, then install pgAdmin4.

Install pgAdmin4 on Ubuntu

your systems to help us eliminate any bugs or other issues that may exist

Enjoy using PostgreSQL 13 on Ubuntu 20.04/18.04/16.04. Other guides related to databases are shared in the list below.

How to Install PostGIS on Ubuntu

Install PostgreSQL 13 on CentOSS 7

Install PostgreSQL on CentOS 8 / RHEL 8

Tags:

  • Install PostgreSQL 13 on Ubuntu 20.04/18.04
  • Install PostgreSQL 13 on Ubuntu 16.04
  • Install PostgreSQL 13 on Ubuntu Linux
  • PostgreSQL 13 installation on Ubuntu 20.04/18.04/16.04
  • PostgreSQL 13 installation on Ubuntu 20.04