On trouve beaucoup moins de documentations sur Internet pour installer PostgreSQL que MySQL. C’est pourquoi, j’ai penser que faire un petit “How to” pouvais être intéressant. Ici, nous allons installer la version 8.3.3.
Pré-installation
Avant de commencer à télécharger les sources, nous allons installer différents packets neccessaires à l’installation de postgreSQL.
apt-get install libreadline5 libreadline5-dev gettext
Téléchargement des sources
Avant tout, nous allons télécharger les sources de postgresql dans un répertoire dédié.
cd ~
mkdir postgresql
cd postgresql
wget http://sources.mes-stats.fr/postgresql/postgresql-8.3.3.tar.gz
Une fois l’archive télécharger, il nous faut la décompresser :
gunzip postgresql-8.3.3.tar.gz
tar xf postgresql-8.3.3.tar
Avant de continuer la procédure d’installation, nous allons aller dans le nouveau répertoire produit par la décompression de l’archive précédemment téléchargée :
cd ./postgresql-8.3.3
Configuration et compilation
Nous allons commencer par configurer la compilation de postgresql grâce à ./configure. Cette commande peut être agrémentée par de nombreux paramètres.
./configure --enable-nls='fr en'
Note: Avec les versions plus récentes de PostgreSQL, il se peux que vous ayez des erreurs concernant des librairies manquantes. Voir en bas de la page quels paquets installer.
Une fois la configuration éffectuée, nous allons pouvoir lancer la compilation :
make
Cette opération peut prendre plusieurs minutes. Lorsque tout est fini, la dernière ligne doit être :
“All of PostgreSQL successfully made. Ready to install.”
Comme nous le dit le compilateur, nous somme prêts à installer PostgreSQL.
Installation
Attention: Pour cette étape, vous avez besoin d’être superutilisateur (root ou utilisation de “sudo”)
Pour installer, rien de plus simple, saisissez cette commande :
make install
Cette opération est beaucoup moins longue que la précédente et si tout se passe bien, elle doit finir par :
“PostgreSQL installation complete.”
Pour nétoyer les fichiers issus de la configuration et de la compilation, vous pouvez faire :
make distclean
Installation – Deuxième étape
Une fois l’installation à partir des sources faite, il faut effectuer plusieurs actions afin que votre base de données soit opérationnelle.
Ajout d’un utilisateur
Pour que la base de donnée soit démarrer correctement, il lui faut un utilisateur spécial ayant des droits mais pas trop (l’utilisateur root ne marche pas pour des questions de sécurité). Nous allons donc créer l’utilisateur “postgres” :
adduser --disabled-password --no-create-home postgres
Création de répertoire contenant les données
Avant d’initier la base de données, il faut créer le répertoire et donner les droits d’écriture à l’utilisateur “postgres” sur le dossier où nous allons stocker les données :
mkdir /usr/local/pgsql/data chown postgres /usr/local/pgsql/data
Initialisation de la base de données
Nous allons maintenant exécuter le script qui permet de “mettre en route” notre base de données en tant que postgres :
su - postgres
Une fois en tant qu’utilisateur “postgres”, nous allons initialiser la base :
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
Configuration du fichier de log et démarrage du serveur
Nous allons créer un fichier de log dans le répertoire “/var/log” afin que postgresql puisse écrire ses logs dans ce fichier. Pour cela, reprenez les droits de superutilisateur et faites ceci :
touch /var/log/postgresql.log chown postgres /var/log/postgresql.log
Ensuite, nous allons démarrer le serveur. Logguez-vous en tant que “postgres” et faites :
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l /var/log/postgresql.log start
Le serveur démarre.
En faire un service
Maintenant, nous allons simplement mettre postgreSQL en service. C’est-à-dire qu’il démarrera automatiquement à chaque démarrage et sera accessible dans “/etc/init.d/”.
Pour celà, nous allons utiliser le script de démarrage fourni dans les sources :
cd ~/postgresql/postgresql-8.3.3/contrib/start-scripts
Nous allons éditer le script de démarrage pour lui fournir les informations concernant postgreSQL :
vi linux
Dans ce fichier, il faut modifier ces quelques lignes :
## EDIT FROM HERE # Installation prefix prefix=/usr/local/pgsql # Data directory PGDATA="/usr/local/pgsql/data" # Who to run the postmaster as, usually "postgres". (NOT "root") PGUSER=postgres # Where to keep a log file PGLOG="/var/log/postgresql.log" ## STOP EDITING HERE
Changez ces lignes afin de mettre les valeurs appropriées. Une fois fermé et enregistré, nous allons copier se fichier (en tant que superutilisateur) et ajouter les droits d’exécution au propriétaire (ici, le propriétaire sera “root”) :
cp ./linux /etc/init.d/postgresql chmod u+x /etc/init.d/postgresql
Toujours en superutilisateur, nous allons mettre à jour les scripts de démarrage en ajoutant postgresql :
update-rc.d postgresql defaults
PostgreSQL est maintenant un service du système. Vous pouvez le re-démarrer, l’arrêter, le démarrer et obtenir son statut en exécutant cette commande :
/etc/init.d/postgresql (start|stop|restart|status)
Raccourcis d’éxécution
Nous allons “dire” au système qu’il y a un nouveau répertoire qui contient de nouveau fichiers exécutables :
vi /etc/profile
Nous allons remplacer la ligne suivante :
export PATH
Par celle-ci :
export LD_LIBRARY_PATH=/usr/local/pgsql/lib export PATH=/usr/local/pgsql/bin:$PATH
Création du premier utilisateur et de la première base de donnée
A ce stade, seul l’utilisateur “postgres” existe dans la base de données, nous allons donc nous connecter à la base de données pour mettre en place de nouveaux utilisateurs et créer des bases de données :
psql -U postgres template1
Note: Si le système vous renvoi une erreur du type “bash: psql: command not found”, remplacez “psql” par “/usr/local/pgsql/bin/psql”.
Si tout s’est bien passé, vous devriez avoir quelque chose comme ça :
Bienvenue dans psql 8.3.3, l’interface interactive de PostgreSQL.
Saisissez:
copyright pour les termes de distribution
h pour l’aide-mémoire des commandes SQL
? pour l’aide-mémoire des commandes psql
g ou point-virgule en fin d’instruction pour exécuter la requête
q pour quittertemplate1=#
Pour créer un nouvel utilisateur, exécutez la requête SQL suivante :
CREATE USER “nouvel-utilisateur” WITH PASSWORD ‘motdepasse’;
Cette requête créera un (simple) nouvel utilisateur “nouvel-utilisateur” avec le mot de passe “motdepasse”.
CREATE USER “nouvel-utilisateur” WITH PASSWORD ‘motdepasse’ CREATEUSER CREATEDB;
Cette requête créera un super-utilisateur “nouvel-utilisateur” avec le mot de passe “motdepasse” qui pourra créer de nouveaux utilisateurs et de nouvelles bases de données.
Pour créer une nouvelle base de donnée, exécutez la requête SQL suivante :
CREATE DATABASE “mabase” OWNER “utilsateur”;
Cette requête créera une nouvelle base de donnée “mabase” où l’utilisateur “utilisateur” sera le super-utilisateur de la base de données.
A partir de maintenant, vous pouvez accéder à vos bases de données à partir de phpPgAdmin par exemple avec le nouvel utilisateur.
Note: La connexion à la base de donnée est inaccessible (par défaut) aux utilisateurs sans mots de passes depuis phpPgAdmin.
Librairies manquantes
- Il vous manque readline, installez libreadline5-dev
- Il vous manque zlib, installez zlib1g-dev
- Il vous manque msgfmt, installez gettext
Pingback: PostgreSQL : Une fonction en shell par Mes-Stats – Blog
Pingback: Installer Redmine avec PostgreSQL » D-Sites
Pingback: Installer Zabbix 1.8.x avec PostgreSQL sur CentOS 5 » D-Sites.com