GNU/Linux >> Tutoriels Linux >  >> Linux

Comment installer un serveur PostgreSQL sur Ubuntu 18.04

PostgreSQL est une base de données open source prise en charge dans le monde entier. Avec plus de 30 ans de service, PostgreSQL, grâce aux différents modules complémentaires disponibles, est réputé pour sa robustesse, son évolutivité et ses performances.

Tout d'abord, connectez-vous à votre serveur via une connexion SSH. Si vous ne l'avez pas encore fait, il est recommandé de suivre notre guide pour vous connecter en toute sécurité avec SSH. Dans le cas d'un serveur local, passez à l'étape suivante et ouvrez le terminal de votre serveur.

Installation de PostgreSQL

Pour procéder à l'installation de PostgreSQL, utilisez le gestionnaire de packages apt. Assurez-vous de mettre à jour le cache :

$ sudo apt update && sudo apt install postgresql postgresql-contrib

Une fois l'installation terminée, le service sera immédiatement disponible. Vérifiez le fichier journal dans /var/log/postgresql/postgresql-10-main.log juste pour vous en assurer

#  tail /var/log/postgresql/postgresql-10-main.log

...LOG:  database system is ready to accept connections

...

Si tout fonctionne correctement, le texte ci-dessus sera dans les dernières lignes du fichier journal.

Vérifier l'installation

Pour vérifier la réussite de l'installation de PostgreSQL, utilisez le client en ligne de commande appelé psql. Tout d'abord, utilisez l'utilisateur par défaut installé par le service. Pour accéder à la base de données, le processus d'authentification de la configuration par défaut de PostgreSQL utilise les mêmes utilisateurs système.

Pour vous connecter avec l'utilisateur par défaut, depuis la ligne de commande, exécutez

$ sudo -i -u postgres

Démarrez maintenant le client et utilisez la commande \l pour afficher la liste des bases de données disponibles :

$ sudo -i -u postgres

$ psql

postgres=# \l
                                                  List of databases

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

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

 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          | |             | | postgres=CTc/postgres

 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          | |             | | postgres=CTc/postgres

(3 rows)
                postgres=# \q

[email protected]:~$ exit

Une fois terminé, quittez le client avec la commande \q et revenez à l'utilisateur d'origine en tapant "exit".

Gérer les utilisateurs et les autorisations

Comme mentionné précédemment, PostgreSQL suppose que chaque utilisateur présent dans son service est également présent dans le système. Pour créer un nouvel utilisateur, ajoutez-le d'abord au système via adduser :

$ sudo adduser tutorial

Adding user `tutorial' ...

Adding new group `tutorial' (1000) ...

Adding new user `tutorial' (1000) with group `tutorial' ...

Creating home directory `/home/tutorial' ...

Copying files from `/etc/skel' ...

Enter new UNIX password:

Retype new UNIX password:

passwd: password updated successfully

Changing the user information for tutorial

Enter the new value, or press ENTER for the default

        Full Name []:

        Room Number []:

        Work Phone []:

        Home Phone []:

        Other []:

Is the information correct? [Y/n] y

Dans l'exemple suivant, un utilisateur appelé "tutoriel" est en cours de création, sans spécifier d'autres informations, telles que le nom ou le numéro de téléphone. Une fois terminé, l'utilisateur PostgreSQL peut être créé. en vous connectant d'abord avec l'utilisateur postgres :

$ sudo -i -u postgres
                $ createuser --interactive

Enter name of role to add: tutorial

Shall the new role be a superuser? (y/n) n

Shall the new role be allowed to create databases? (y/n) n

Shall the new role be allowed to create more new roles? (y/n) n

Après avoir créé l'utilisateur, définissez un mot de passe, connectez-vous via le superutilisateur postgres et modifiez l'utilisateur que vous venez de créer :

$ psql

postgres=# ALTER USER tutorial PASSWORD 'password'; ALTER ROLE;

Une base de données pour l'utilisateur nouvellement créé peut également être créée en exécutant la commande :

$ createdb tutorial

Une fois terminé, déconnectez-vous et essayez de vous connecter avec l'utilisateur nouvellement créé :

$ sudo -i -u tutorial

[email protected]:~$ psql

psql (10.9 (Ubuntu 10.9-0ubuntu0.18.04.1))

Type "help" for help.
                tutorial=> \l

                                  List of databases

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

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

 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          | |             | | postgres=CTc/postgres

 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          | |             | | postgres=CTc/postgres

 tutorial  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

(4 rows)

Activer l'accès aux clients externes

Dans certains cas, il peut être nécessaire d'autoriser l'accès par des clients externes (par exemple votre machine) à une ou plusieurs bases de données sur le serveur. Normalement, PostgreSQL n'est pas configuré pour accepter les connexions qui ne sont pas locales, donc modifiez certains fichiers de configuration.

Le premier fichier à modifier est le fichier de configuration principal, dans /etc/postgresql/10/main/postgresql.conf.

Assurez-vous de modifier la ligne suivante à partir de :

listen_addresses = 'localhost'

Avec :

listen_addresses = '*'

De cette façon, vous informez PostgreSQL d'attendre des connexions entrantes de n'importe quelle interface réseau.

Assurez-vous d'enregistrer votre modification. Passez maintenant à l'édition du fichier qui gère les règles d'accès au serveur dans /etc/postgresql/10/main/pg_hba.conf, en ajoutant la ligne suivante :

host    tutorial        tutorial 0.0.0.0/0               md5

Cette modification permet à l'utilisateur "tutoriel" d'accéder à sa base de données depuis n'importe quel hôte. En particulier, les champs indiqués sont :

  1. hôte :le type de connexion que vous acceptez. Les valeurs possibles sont :

    • local :connexions non réseau à partir du système
    • hôte :tout type de connexion TCP/IP
    • hostssl :Connexions TCP/IP uniquement sous protocole SSL
    • hostnossl :Connexions TCP/IP NON sous protocole SSL
  2. tutoriel :nom de la base de données pour autoriser l'accès, utilisez "tout" pour faire référence à toutes les bases de données

  3. tutoriel :nom d'utilisateur pour accorder l'accès

  4. 0.0.0.0/0 :adresse IP, dans votre cas, vous autorisez l'accès à n'importe quelle adresse IPv4

  5. md5 :méthodologie d'authentification acceptée, parmi les plus importantes :

    • md5 :authentification par mot de passe
    • confiance :accepte sans condition la connexion sans condition
    • peer :utilise le nom d'utilisateur du système pour se connecter uniquement à la base de données du même nom.

Pour plus d'informations, accédez à l'adresse https://www.postgresql.org/docs/9.1/auth-pg-hba-conf.html ou au document officiel PostgreSQL.

Une fois terminé, redémarrez le service pour appliquer toutes les modifications :

$ sudo systemctl restart postgresql

Linux
  1. Comment installer PostgreSQL et pgAdmin4 sur Ubuntu 20.04

  2. Comment installer la localisation sur un serveur Ubuntu

  3. Comment installer VSFTPD sur un serveur Ubuntu Cloud

  4. Comment installer MariaDB sur Ubuntu 22.04

  5. Comment installer Ubuntu Server 15.10 sur Hyper-v ?

Comment installer NGINX sur Ubuntu 20.04

Comment installer Ansible Server sur Ubuntu 18.04

Comment installer TimescaleDB sur Ubuntu 18.04

Comment installer XWiki sur Ubuntu 20.04

Comment installer ClickHouse sur Ubuntu 20.04

Comment installer FTP sur Ubuntu 18.04 ?