Install Postgres on Centos 7
Table des matières:
- Conditions préalables
- Installer PostgreSQL à partir des référentiels CentOS
- Installer PostgreSQL à partir des référentiels PostgreSQL
- Rôles PostgreSQL et méthodes d'authentification
- Création d'un rôle et d'une base de données PostgreSQL
- Activer l'accès à distance au serveur PostgreSQL
- Conclusion
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 permettent de créer des applications Web complexes.
Dans ce tutoriel, nous vous montrerons deux méthodes différentes sur la façon d'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 officiels de PostgreSQL.
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 la base de données PostgreSQL.
Conditions préalables
Avant de poursuivre ce didacticiel, assurez-vous que vous êtes connecté en tant qu'utilisateur avec les privilèges sudo.
Installer PostgreSQL à partir des référentiels CentOS
Au moment de la rédaction de cet article, la dernière version de PostgreSQL disponible dans les référentiels CentOS est la version 9.2.23 de PostgreSQL.
Pour installer PostgreSQL sur votre serveur CentOS, suivez les étapes ci-dessous:
-
Installation de 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-contribInitialisation de la base de données
Initialisez la base de données PostgreSQL avec la commande suivante:
sudo postgresql-setup initdbInitializing database… OKDé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 postgresqlVérification de l'installation de PostgreSQL
Pour vérifier l'installation, nous essaierons de nous connecter au serveur de base de données PostgreSQL à l'aide de l'outil
psqlet d'imprimer 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)
Installer PostgreSQL à partir des référentiels 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 Yum de PostgreSQL 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:
-
Activation du référentiel PostgreSQL
Pour activer le référentiel PostgreSQL, installez simplement le fichier
rpmdu référentiel:sudo yum installInstallation de 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-contribInitialisation de la base de données
Pour initialiser le type de base de données PostgreSQL:
sudo /usr/pgsql-10/bin/postgresql-10-setup initdbInitializing database… OKDé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-10Vérification de l'installation de PostgreSQL
Pour vérifier l'installation, nous essaierons de nous connecter au serveur de base de données PostgreSQL à l'aide de l'outil
psqlet d'imprimer 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 aux bases 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
pg_hba.confsont remplis.Password - Un rôle peut se connecter en fournissant un mot de passe. Les mots de passe peuvent être stockés sous forme descram-sha-256md5et depassword(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 il n'est pris en charge que sur les connexions locales.
L'authentification 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.
L'utilisateur
postgres
est créé automatiquement lorsque vous installez PostgreSQL. Cet utilisateur est le superutilisateur de l'instance PostgreSQL et est équivalent à l'utilisateur root 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 l'utilitaire
psql
:
sudo su - postgres
psql
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 la commande
sudo
:
sudo -u postgres psql
L'utilisateur
postgres
est généralement utilisé uniquement à partir de l'hôte local et il est recommandé de ne pas définir le mot de passe pour cet utilisateur.
psql
qui est
/usr/pgsql-10/bin/psql
.
Création d'un rôle et d'une base de données PostgreSQL
Seuls les superutilisateurs et les rôles disposant
CREATEROLE
privilège
CREATEROLE
peuvent 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.
-
Connectez-vous au PostgreSQL Shell
sudo -u postgres psqlCréer un nouveau rôle PostgreSQL
La commande suivante créera un nouveau rôle nommé john:
create role john;Créer une nouvelle base de données PostgreSQL
Créez une nouvelle base de données nommée johndb à l'aide de la commande
createdb:create database johndb;Accorder des privilèges
Pour accorder des autorisations à l'utilisateur
johnsur 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 n'écoute que 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 la section
CONNECTIONS AND AUTHENTICATION
.
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 l'utilitaire
ss
:
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 sur la sortie ci-dessus, le serveur PostgreSQL écoute sur toutes les interfaces (0.0.0.0).
La dernière étape consiste à configurer le serveur pour accepter les connexions distantes en modifiant le fichier
pg_hba.conf
.
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
.
Conclusion
Vous avez appris à installer et à configurer PostgreSQL sur votre serveur CentOS 7.
Vous pouvez consulter la documentation PostgreSQL pour plus d'informations sur ce sujet.
base de données centos postgresqlComment installer postgresql sur centos 8
Dans ce guide, nous verrons comment installer le serveur de base de données PostgreSQL sur CentOS 8. Nous explorerons également les bases de l'administration de la base de données PostgreSQL.
Comment installer postgresql sur debian 10
Ce tutoriel vous guide à travers les étapes d'installation du serveur de base de données PostgreSQL sur Debian 10. PostgreSQL, souvent connu simplement sous le nom de Postgres, est un système de gestion de base de données relationnelle objet open source à usage général.
Comment installer postgresql sur debian 9
PostgreSQL, souvent connu simplement sous le nom de Postgres, est un système de gestion de base de données relationnelle objet open source à usage général. Dans ce tutoriel, nous allons vous montrer comment installer PostgreSQL sur Debian 9 et explorer les principes de base de l'administration de base de données.







