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

Comment installer PostgreSQL sur CentOS 7

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 applications Web complexes.

Dans ce didacticiel, nous allons vous montrer deux méthodes différentes pour installer PostgreSQL sur votre machine CentOS 7. La première méthode vous guidera à travers les étapes nécessaires pour installer PostgreSQL v9.2.23 à partir des référentiels CentOS tandis que la seconde vous montrera comment installer la dernière version de PostgreSQL à partir des référentiels PostgreSQL officiels.

Si votre application ne nécessite pas la dernière version, nous vous recommandons d'utiliser la première méthode et d'installer PostgreSQL à partir des référentiels CentOS.

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

Prérequis #

Avant de poursuivre ce didacticiel, assurez-vous que vous êtes connecté en tant qu'utilisateur disposant des privilèges sudo.

Installer PostgreSQL depuis les dépôts CentOS #

Au moment de la rédaction de cet article, la dernière version de PostgreSQL disponible dans les référentiels CentOS est PostgreSQL version 9.2.23.

Pour installer PostgreSQL sur votre serveur CentOS, suivez les étapes ci-dessous :

  1. Installer PostgreSQL

    Pour installer le serveur PostgreSQL avec le package contrib PostgreSQL qui fournit plusieurs fonctionnalités supplémentaires pour la base de données PostgreSQL, tapez simplement :

    sudo yum install postgresql-server postgresql-contrib
  2. Initialisation de la base de données

    Initialisez la base de données PostgreSQL avec la commande suivante :

    sudo postgresql-setup initdb
    Initializing database ... OK
  3. Démarrage de PostgreSQL

    Pour démarrer le service PostgreSQL et lui permettre de démarrer au démarrage, tapez simplement :

    sudo systemctl start postgresqlsudo systemctl enable postgresql
  4. Vérification de l'installation de PostgreSQL

    Pour vérifier l'installation, nous allons essayer de nous connecter au serveur de base de données PostgreSQL en utilisant le psql tool et imprimez la version du serveur :

    sudo -u postgres psql -c "SELECT version();"
    PostgreSQL 9.2.23 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16), 64-bit
    (1 row)
Psql est un utilitaire de ligne de commande interactif qui nous permet d'interagir avec le serveur PostgreSQL.

Installer PostgreSQL depuis les dépôts PostgreSQL #

Au moment de la rédaction de cet article, la dernière version de PostgreSQL disponible dans les référentiels officiels de PostgreSQL est PostgreSQL version 10.4. Avant de passer à l'étape suivante, vous devez visiter la page Référentiel PostgreSQL Yum et vérifier si une nouvelle version est disponible.

Suivez les étapes ci-dessous pour installer la dernière version de PostgreSQL sur votre serveur CentOS :

  1. Activation du référentiel PostgreSQL

    Pour activer le référentiel PostgreSQL, installez simplement le référentiel rpm fichier :

    sudo yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm
  2. Installer PostgreSQL

    Une fois le référentiel activé, installez le serveur PostgreSQL et les packages de contribution PostgreSQL avec :

    sudo yum install postgresql10-server postgresql10-contrib
  3. Initialisation de la base de données

    Pour initialiser la base de données PostgreSQL, tapez :

    sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
    Initializing database ... OK
  4. Démarrage de PostgreSQL

    Pour démarrer le service PostgreSQL et lui permettre de démarrer au démarrage, tapez :

    sudo systemctl start postgresql-10sudo systemctl enable postgresql-10
  5. Vérification de l'installation de PostgreSQL

    Pour vérifier l'installation, nous allons essayer de nous connecter au serveur de base de données PostgreSQL en utilisant le psql tool et imprimez la version du serveur :

    sudo -u postgres /usr/pgsql-10/bin/psql -c "SELECT version();"
    PostgreSQL 10.4 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit
    (1 row)

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

Les autorisations d'accès à la base de données dans PostgreSQL sont gérées avec 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 :

  • Trust - Avec cette méthode, le rôle peut se connecter sans mot de passe, tant que les critères définis 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 - Cette méthode n'est prise en charge que 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 uniquement pris en charge 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 créé automatiquement lorsque vous installez PostgreSQL. Cet utilisateur est le superutilisateur de l'instance PostgreSQL et il équivaut à l'utilisateur racine MySQL.

Pour vous connecter au serveur PostgreSQL en tant qu'utilisateur postgres, vous devez d'abord passer à l'utilisateur postgres, puis accéder à l'invite PostgreSQL à l'aide de psql utilitaire :

sudo su - postgrespsql

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

\q

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

sudo -u postgres psql

Le postgres l'utilisateur est généralement utilisé uniquement à partir de l'hôte local et il est recommandé de ne pas définir de mot de passe pour cet utilisateur.

Si vous avez installé PostgreSQL version 10 à partir des dépôts PostgreSQL officiels, vous devrez utiliser le chemin complet vers psql binaire qui est /usr/pgsql-10/bin/psql .

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 accorder des privilèges sur la base de données.

  1. Connectez-vous au shell PostgreSQL

    sudo -u postgres psql
  2. Créer un nouveau rôle PostgreSQL

    La commande suivante créera un nouveau rôle nommé "john":

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

    Créez une nouvelle base de données nommée "johndb" en utilisant le createdb commande :

    CREATE DATABASE johndb;
  4. Accorder des privilèges

    Pour accorder des autorisations au john utilisateur sur la base de données que nous avons créée à l'étape précédente, exécutez 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 postgresql.conf et ajoutez listen_addresses = '*' dans le CONNECTIONS AND AUTHENTICATION rubrique.

sudo vim /var/lib/pgsql/data/postgresql.conf
Si vous exécutez PostgreSQL version 10, le chemin d'accès au fichier est /var/lib/pgsql/10/data/postgresql.conf ./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
Si vous exécutez PostgreSQL version 10, redémarrez le service PostgreSQL avec systemctl restart postgresql-10 .

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                [::]:*

Comme vous pouvez le voir dans la sortie ci-dessus, le serveur PostgreSQL écoute 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 will be able to access all databases from all locations using a md5 password
host    all             jane            0.0.0.0/0                md5

# The user jane will be able to access only the janedb from all locations using a md5 password
host    janedb          jane            0.0.0.0/0                md5

# The user jane will be able to access all databases from a trusted location (192.168.1.134) without a password
host    all             jane            192.168.1.134            trust
Si vous exécutez PostgreSQL version 10, le chemin d'accès complet au fichier est /var/lib/pgsql/10/data/pg_hba.conf .
Cent OS
  1. Comment installer PHP 7, 7.2 et 7.3 sur CentOS 7

  2. Comment installer Java 11 et 12 sur CentOS 7

  3. Comment installer PostgreSQL sur CentOS 7

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

  5. Comment installer PostgreSQL sur CentOS 7 / RHEL 7

Comment installer phpPgAdmin 5.6 sur CentOS 7 / RHEL 7

Comment installer PostgreSQL dans CentOS 8

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

Comment installer PostgreSQL sur CentOS 6

Comment installer OpenNMS sur CentOS 7

Comment installer PostgreSQL et pgAdmin dans CentOS 8