GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment installer PostgreSQL sur CentOS 8

PostgreSQL ou Postgres est un système de gestion de base de données relationnelle objet à usage général open source avec de nombreuses fonctionnalités avancées qui vous permet de créer des environnements tolérants aux pannes ou des applications complexes.

Dans ce guide, nous expliquerons comment installer le serveur de base de données PostgreSQL sur CentOS 8. Avant de choisir la version à installer, assurez-vous que vos applications la prennent en charge.

Nous explorerons également les bases de l'administration de bases de données PostgreSQL.

Prérequis #

Pour pouvoir installer des packages, vous devez être connecté en tant qu'utilisateur root ou utilisateur avec les privilèges sudo.

Installer PostgreSQL sur CentOS 8 #

Au moment de la rédaction de cet article, deux versions du serveur PostgreSQL sont disponibles pour l'installation à partir des référentiels CentOS standard :version 9.6 et 10.0.

Pour répertorier les flux de modules PostgreSQL disponibles, saisissez :

dnf module list postgresql

La sortie montre que le module postgresql est disponible avec deux flux. Chaque flux a deux profils :serveur et client. Le flux 10 avec le serveur de profil est celui par défaut :

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 
  1. Pour installer le flux par défaut, serveur PostgreSQL version 10.0, tapez :

    sudo dnf install @postgresql:10
  2. Pour installer le serveur PostgreSQL version 9.6, tapez :

    sudo dnf install @postgresql:9.6 

Vous pouvez également installer le package contrib qui fournit plusieurs fonctionnalités supplémentaires pour le système de base de données PostgreSQL.

sudo dnf install postgresql-contrib

Une fois l'installation terminée, initialisez la base de données PostgreSQL avec la commande suivante :

sudo postgresql-setup initdb
Initializing database ... OK

Démarrez le service PostgreSQL et activez-le pour qu'il démarre au démarrage :

sudo systemctl enable --now postgresql

Utilisez le psql outil pour vérifier l'installation en se connectant au serveur de base de données PostgreSQL et imprimer sa version :

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

Rôles PostgreSQL et méthodes d'authentification #

PostgreSQL gère les autorisations d'accès à la base de données en utilisant le concept de rôles. Un rôle peut représenter un utilisateur de base de données ou un groupe d'utilisateurs de base de données.

PostgreSQL prend en charge plusieurs méthodes d'authentification. Les méthodes les plus couramment utilisées sont :

  • Confiance - Un rôle peut se connecter sans mot de passe, tant que les conditions définies dans le pg_hba.conf sont remplies.
  • Mot de passe :un rôle peut se connecter en fournissant un mot de passe. Les mots de passe peuvent être stockés sous la forme scram-sha-256 , md5 , et password (texte clair).
  • Ident :uniquement pris en charge sur les connexions TCP/IP. Il fonctionne en obtenant le nom d'utilisateur du système d'exploitation du client, avec un mappage de nom d'utilisateur facultatif.
  • Peer :identique à Ident, mais il n'est pris en charge que sur les connexions locales.

L'authentification du client PostgreSQL est définie dans le fichier de configuration nommé pg_hba.conf . Par défaut, pour les connexions locales, PostgreSQL est configuré pour utiliser la méthode d'authentification par les pairs.

Le postgres user est automatiquement créé lorsque vous installez le serveur PostgreSQL. Cet utilisateur est le superutilisateur de l'instance PostgreSQL. Il équivaut à l'utilisateur racine MySQL.

Pour vous connecter au serveur PostgreSQL en tant que postgres utilisateur, passez d'abord à l'utilisateur, puis accédez à l'invite PostgreSQL à l'aide de psql utilitaire :

sudo su - postgrespsql

À partir de là, vous pouvez interagir avec l'instance PostgreSQL. Pour quitter le shell PostgreSQL, tapez :

\q

Vous pouvez également accéder à l'invite PostgreSQL sans changer d'utilisateur avec le sudo commande :

sudo -u postgres psql

Typiquement le postgres l'utilisateur est utilisé uniquement à partir de l'hôte local.

Création du rôle et de la base de données PostgreSQL #

Seuls les super-utilisateurs et les rôles avec CREATEROLE privilège peut créer de nouveaux rôles.

Dans l'exemple suivant, nous allons créer un nouveau rôle nommé john , une base de données nommée johndb , et accordez des privilèges sur la base de données.

  1. Tout d'abord, connectez-vous au shell PostgreSQL :

    sudo -u postgres psql
  2. Créez un nouveau rôle PostgreSQL à l'aide de la commande suivante :

    CREATE ROLE john;
  3. Créer une nouvelle base de données :

    CREATE DATABASE johndb;
  4. Accordez des privilèges à l'utilisateur sur la base de données en exécutant la requête suivante :

    GRANT ALL PRIVILEGES ON DATABASE johndb TO john;

Activer l'accès à distance au serveur PostgreSQL #

Par défaut, le serveur PostgreSQL écoute uniquement sur l'interface locale 127.0.0.1 .

Pour activer l'accès à distance à votre serveur PostgreSQL, ouvrez le fichier de configuration :

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

Faites défiler jusqu'à CONNECTIONS AND AUTHENTICATION section et ajoutez/modifiez la ligne suivante :

/var/lib/pgsql/data/postgresql.conf
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'     # what IP address(es) to listen on;

Enregistrez le fichier et redémarrez le service PostgreSQL avec :

sudo systemctl restart postgresql

Vérifiez les modifications avec le ss utilitaire :

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

La sortie ci-dessus montre que le serveur PostgreSQL écoute sur le port par défaut sur toutes les interfaces (0.0.0.0).

La dernière étape consiste à configurer le serveur pour qu'il accepte les connexions à distance en modifiant le pg_hba.conf fichier.

Voici quelques exemples montrant différents cas d'utilisation :

/var/lib/pgsql/data/pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD

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

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

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

Cent OS
  1. Comment installer le serveur PostgreSQL sur RHEL 8 / CentOS 8

  2. Comment installer PostgreSQL sur CentOS 7

  3. Comment installer le serveur Teamspeak 3 sur CentOS 8

  4. Comment installer PostgreSQL 10 sur CentOS 6 / RHEL 6

  5. Comment installer PostgreSQL Server sur CentOS 8

Comment installer Minecraft Server sur CentOS

Comment installer PostgreSQL dans CentOS 8

Comment installer Nginx sur CentOS

Comment installer le serveur de base de données PostgreSQL CentOS 8

Comment installer MySQL 8 sur CentOS 8

Comment installer PostgreSQL sur CentOS 6