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
DATABASEetUSER, il est possible de mettreallau lieu d'un nom, pour donner accès à la totalité des bases de données ou utilisateurs. - La colonne
ADRESSESdéfinit un réseau autorisé à accéder au serveur. Il est possible d'utiliser le masque/32pour 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
\daffiche 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 commandedtn'affichera donc que les tables. - La commande
\timinglui indique d'afficher la durée d'exécution des requêtes. - La commande
\psetpermet 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