This article describes how to install PostgreSQL 13 on Ubuntu 20.04 and then configure r_keeper connection with a remote PostgreSQL server.
System Update
Update the system with the command:
sudo apt update sudo apt -y upgrade
After updating, reboot the system to start the new kernel.
Adding PostgreSQL 13 Repository to Ubuntu
Add 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 - echo "deb http://apt.postgresql.org/pub/repos/apt/` lsb_release -cs`-pgdg main "| sudo tee /etc/apt/sources.list.d/pgdg.list
Installing PostgreSQL 13
Install PostgreSQL 13
sudo apt update sudo apt install postgresql-13 postgresql-client-13
If after installation the database server does not start, then run it with the command:
sudo pg_ctlcluster 13 main start
Checking PostgreSQL Connection
The postgres user is automatically created during installation. This user has full super administrator access to the entire PostgreSQL instance. The logged-in system user must have sudo privileges before switching to this account.
sudo su - postgres
To change the user's password to a secure one, enter:
psql -c "alter user postgres with password 'YourSuperPass';"
If PostgreSQL is already running, then specify the query:
alter user postgres with password 'YourSuperPass';
Start PostgreSQL command line:
psql
psql (13.3 (Ubuntu 13.3-1.pgdg20.04 + 1)) 00
Enter help to get the support information.
Connection details:
\conninfo
You are connected to the postgres database as the postgres user through a socket at /var/run/postgresql on port 5432.
Database Creation
Create a database:
CREATE DATABASE RK765;
CREATE DATABASE
Create a database user with a password
CREATE USER ucs WITH ENCRYPTED PASSWORD '123';
CREATE ROLE
Assign rights to the created user within the specified database
GRANT ALL PRIVILEGES ON DATABASE rk765 to ucs;
GRANT
Assign the rights to create roles to the created user. These rights are required for work with r_keeper:
alter role ucs with createrole;
ALTER ROLE
List the databases
postgres=# \l
Database List
Name | Owner | Encoding | LC_COLLATE | LC_CTYPE | Access Rights
-----------+----------+-----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 |
rk765 | postgres | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 |
template0 | postgres | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 lines)
Exiting psql
Logging out of the postgres superuser
exit
logout
Setting up a remote connection
Installing PostgreSQL 13 on Ubuntu only accepts connections from localhost by default. In production environments, there will be a central database server and remote clients connected to it.
Allowing Remote Connections
To allow remote connections, edit the PostgreSQL configuration file:
sudo nano /etc/postgresql/13/main/postgresql.conf
The configuration file will open. Uncomment or add a line in it at your choice:
listen to all interfaces:
listen_addresses = '*' # Listen on all interfaces
listen only to given addresses:
listen_addresses = '192.168.1.101' # Listen on specified private IP address
In our case, the selected address is 192.168.1.101, you will have another one.
For NANO text editor:
To save changes in the file, use Ctrl + O
To exit file editing mode, use Ctrl + X
Allowing Remote Connections Accepting
Configure PostgreSQL to accept remote connections from authorized hosts.
Go to the config file:
sudo nano /etc/postgresql/13/main/pg_hba.conf
Uncomment or add a new line at your choice:
Accepting remote connections from anywhere
host all all 0.0.0.0/0 md5 # Accept from anywhere
Accepting remote connections from allowed subnets
host all all 10.10.10.0/24 md5 # Accept from trusted subnet
After the change, restart the postgresql service.
sudo systemctl restart postgresql
Check the listening address.
netstat -tunelp | grep 5432
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 123 4698674 - tcp6 0 0 :::5432 :::* LISTEN 123 4698675 -
The received information about the listening address confirms that all the settings are correct.