Installation et configuration de PostgreSQL
mer. 11 sept. 2013 by MarmottePostgreSQL est un système de gestion de bases de donnés relationnelles.
Installation¶
Sous Debian, il suffit d'installer le paquet postgresql
.
$ sudo apt-get install --no-install-recommends postgresql
Configuration¶
Les fichiers de configuration se trouvent dans le répertoire /etc/postgresql/<Version>/<Cluster>/
.
Le chemin complet étant différent selon la version et le cluster, je donnerai uniquement le nom du fichier, et pas le chemin absolu dans cette section.
Pour permettre l'utilisation du serveur depuis d'autres machines¶
Pour permettre à d'autres machines de se connecter au serveur PostgreSQL, il faut qu'il écoute sur d'autres interfaces que l'interface loopback.
Pour cela, il faut modifier le paramètre listen_addresses
qui se situe dans le fichier postgresql.conf
.
Cette variable contient une liste des IP des interfaces sur lesquelles le serveur doit écouter, séparées par des virgules.
listen_addresses = '<IP1>,<IP2>'
Note : En plus d'adresses IP, il est possible de mettre
localhost
, ce qui désigne l'interface loopback, ou*
, qui désigne toutes les interfaces.Attention : Ce sont les IP des interfaces du serveur PostgreSQL qu'il faut renseigner ici.
Il faut ensuite autoriser d'autres machines à se connecter sur le serveur, pg_hba.conf
.
Le format des lignes de ce fichier est TYPE DATABASE USER ADDRESSES METHOD
.
- Pour les colonnes
DATABASE
etUSER
, il est possible de mettreall
au lieu d'un nom, pour donner accès à la totalité des bases de données ou utilisateurs. - La colonne
ADRESSES
définit un réseau autorisé à accéder au serveur. Il est possible d'utiliser le masque/32
pour désigner une machine spécifique :10.2.32.254/32
Augmenter les ressources utilisées par PostgreSQL¶
Sur des machines récentes, il est possible d'augmenter les ressources utilisables par PostgreSQL en modifiant des paramètres du noyau Linux.
Sous Debian, le fichier /etc/sysctl.d/30-postgresql-shm.conf
permettant ces configurations spécifiques est proposé par défaut.
Attention : Ces paramètres sont définis au niveau du noyau, et ne s'appliquent donc pas uniquement à PostgreSQL.
Après une modification de ces paramètres, il est nécessaire de recharger la configuration de sysctl.
$ sudo sysctl --system
Commandes disponibles¶
Les commandes décrites ici sont fournies par le paquet postgresql-client
, dont dépend le paquet postgresql
.
Pour toutes ces commandes, il est possible de définit le cluster dans lequel les opérations peuvent être effectuées avec la variable d'environnement PGCLUSTER
.
$ export PGCLUSTER='<Version>/<Cluster>'
Interface console¶
L'utilitaire psql
est une simple interface en mode console pour PostgreSQL.
On peut y taper directement des requêtes SQL, ou s'en servir de manière non interactive pour exécuter des fichiers SQL.
$ psql <Database> < <Fichier.sql>
Il accepte aussi des commandes spécifiques, permettant d'afficher des informations simplement.
- La commande
\d
affiche la liste des éléments contenus dans la base de données courante (tables, vues, séquences...). Il est possible de lui spécifier les éléments à afficher par leurs initiales. La commandedt
n'affichera donc que les tables. - La commande
\timing
lui indique d'afficher la durée d'exécution des requêtes. - La commande
\pset
permet de définit les paramètres d'affichage spécifiques àpsql
. - D'autres commandes sont disponibles. La liste complète des commandes est donnée dans le manuel.
Il est possible de faire exécuter automatiquement des commandes ou requêtes SQL au lancement psql
en les mettant dans le fichie ~/.psqlrc
.
Gestion des utilisateurs¶
createuser
: Créationdropuser
: Suppression
Gestion des bases de données¶
createdb
: Créationdropdb
: Suppressionpg_dump
: Sauvegardepg_restore
: Restaurationvacuumdb
: Nettoyage