PostgreSQL sous linux

6
PostgreSQL : Installation sous linux Licence Professionnelle Administration des bases de données RAOYAUME DU MAROC ADMINISTRATION DES BASES DE DONNEES UNIVERSITE IBN TOUFAIL LICENCE PROFESSIONNELLE KENITRA REALISE PAR : Mr. Khalid ALLILI Mr. Noureddine EL FIZAZI ANNEE UNIVERSITAIRE 2006/2007

description

tutoriel pour la mise en œuvre de PostgreSQL sous linux a partir du code souce sous linux. Réalisé par M. Khalid ALLILI et M. NoureddineEL FIZAZI

Transcript of PostgreSQL sous linux

Page 1: PostgreSQL sous linux

PostgreSQL : Installation sous linux

Licence Professionnelle Administration des bases de données 1

RAOYAUME DU MAROC ADMINISTRATION DES BASES DE DONNEES UNIVERSITE IBN TOUFAIL LICENCE PROFESSIONNELLE KENITRA REALISE PAR :

Mr. Khalid ALLILI Mr. Noureddine EL FIZAZI

ANNEE UNIVERSITAIRE 2006/2007

Page 2: PostgreSQL sous linux

PostgreSQL : Installation sous linux

Licence Professionnelle Administration des bases de données 2

1) Introduction Il existe diffères types d'installation (code source, rpm, deb ....), durant ce tutorial on va utiliser des codes sources (.tar.gz) comme origine d'installation en passant par la préparation, la compilation et l'installation. L’utilité de ce type d'installation réside dans le fait qu’elle marche dans les différentes distributions et de bien contrôler les paramètres de l'installation.

Des erreurs peuvent être engendrées pendant la préparation et la compilation, en raison des dépendances des bibliothèques. Les plus importantes sont :

• gcc / g++ : Compilateur C de GNU.

• libreadline : bibliothèque qui permet d’avoir accès à l’historique de requête dans le moniteur interactif psql.

• zlib : bibliothèque nécessaire pour la création d’archives lors de la sauvegardes de bases de données en archive tar ou compressées.

Pour ce qui concerne le chemin d'installation, vous pouvez utiliser le chemin que vous voulez. Durant ce tutorial on va utiliser /opt/sources comme répertoire source, et /usr/local comme répertoire d'installation (c'est le répertoire par défaut).

La version PostgreSQL qu'on a utilisé est : postgresql-8.2.3 téléchargeable à partir du ftp://ftp.fr.postgresql.org/source/v8.2.3

N.B :

− Vous devez être en mode « root » pour installer ces programmes, pour ceux qui utilisent Ubuntu n'oublier pas d'utiliser « sudo » avant les commandes root ☺.

2) Installation 2-1) Création d'un super utilisateur

Les programmeurs de PostgreSQL pour des raisons de sécurité (impliquant des failles/fuites de sécurités selon les droits accordés à cet utilisateur sous Linux qui peuvent être due à des attaques de requêtes de type "SQL injection" par le réseau ou par une mauvaise utilisation des modules objets chargés dans les bases par de simples utilisateurs etc...) ont imposés que les utilisateurs devaient avoir des droits limités sur la machine où PostgreSQL tourne.

Pour créer un super utilisateur qu'on nommera "postgres" on utilise la commande :

Adduser postgres

On indique par la suite le mot de passe et d'autres informations tel que : nom ……

$> adduser postgres

Ajout de l'utilisateur « postgres »...

Ajout du nouveau groupe « postgres » (1002).

Ajout du nouvel utilisateur « postgres » (1002) avec le groupe « postgres ».

Le répertoire personnel « /home/postgres » existe déjà. Pas de recopie

de « /etc/skel ».

Enter new UNIX password:

Retype new UNIX password:

passwd : le mot de passe a été mis à jour avec succès

Page 3: PostgreSQL sous linux

PostgreSQL : Installation sous linux

Licence Professionnelle Administration des bases de données 3

Modification des informations relatives à l'utilisateur postgres

Entrez la nouvelle valeur ou « Entrée » pour conserver la valeur proposée

Nom complet []: Super utilisateur Postgres

No de bureau []:

Téléphone professionnel []:

Téléphone personnel []:

Autre []:

Ces informations sont-elles correctes [o/N] ? o

$>

2-2) Préparation de l'installation Afin d’organiser notre installation on va créer un dossier qui va contenir les sources, que vous voulez installer, pour cela on fait :

mkdir /opt/sources

Copier le fichier compressé (.tar.gz) dans le dossier sources (on suppose que le fichier existe dans le dossier ~) :

cp ~./ postgresql-8.2.3.tar.gz /opt/sources

Entrer dans le dossier source en utilisant :

cd /opt/sources

Décompresser le fichier source sous le dossier /opt/sources/postgresql-8.2.3 en utilisant :

tar -zxvf postgresql-8.2.3.tar.gz

Se positionner sur postgresql-8.2.3 :

cd postgresql-8.2.3

Pour préparer l'installation on utilise :

./configure

On peut connaître les options de la préparation on utilisant :

./configure –help

2-3) Compilation et installation Pour compiler notre programme, tapez :

make

Cette partie prend du temps car elle compile tous les fichiers du programme.

Pour vérifier et tester l'installation avant de la lancer, utilisez la commande :

make check

Sinon, lancer l'installation avec la commande :

make install

PostgreSQL sera donc installer dans le répertoire : /use/local/pgsql

Page 4: PostgreSQL sous linux

PostgreSQL : Installation sous linux

Licence Professionnelle Administration des bases de données 4

2-4) Configuration système

Pour exécuter les commandes PostgreSQL, qui existent dans /usr/local/pgsql/bin, à partir de n'importe quel emplacement, on va donc déclarer les chemins contenants les commandes ainsi que les bibliothèques postgreSQL. Pour cela on va éditer le fichier profile qui concerne tout les utilisateurs en utilisant l'éditeur vi : vi /etc/profile

Pour ceux qui n'utilisent pas l'éditeur vi, ils peuvent utiliser n'importe quel autre éditeur par exemple gedit :

gedit /etc/profile

On ajout alors à la fin du fichier profile les lignes suivantes :

# Chemin des bibliothèque Postgres

export LD_LIBRARY_PATH=/usr/local/pgsql/lib

# Chemin des commandes Postgres

export PATH=/usr/local/pgsql/bin:$PATH

Pour vérifier : Se connecter entend que utilisateur « postgres »

$> su – postgres

Password :

$> env | grep PATH=

N.B : − Si vous oublier "-" entre "su" et le nom d'utilisateur les variable d'environnement ne seront pas

chargées.

2-5) Initialisation

Il faut donner les droits aux utilisateurs, afin qu’ils puissent exploiter PostgreSQL :

chmod o+rw /usr/local/pgsql/

PostegreSQL utilise un dossier comme cluster (le dossier qui va contenir les bases de données), pour ce tutorial, on va prendre /usr/local/pgsql/data comme cluster pour cela on doit le créer : mkdir /usr/local/pgsql/data

Puisque l’utilisateur «postgres» est le super utilisateur du PostgreSQL, alors il doit être le propriétaire de /usr/local/pgsql/data/ :

chown postgres /usr/local/pgsql/data -R

L’étape suivante consiste à initialiser PostgreSQL, pour cela on doit indiquer que le dossier qu’on a créé /usr/local/pgsql/data est le cluster par défaut. Le super utilisateur «postgres» qui se charge de l’initialisation, donc on doit se connecter en tend que «postgres» :

su - postgres

Password :

La commande pour initialiser postgreSQL est :

initdb -D /usr/local/pgsql/data -A md5 –W

Page 5: PostgreSQL sous linux

PostgreSQL : Installation sous linux

Licence Professionnelle Administration des bases de données 5

Avec:

− A md5 : Pour crypter les mots de passe en md5.

− W : Assigner un mot de passe au super utilisateur. Sans cela, tous les utilisateurs locaux peuvent avoir accès au serveur sans sécurité.

Pour ne pas écrire a chaque fois -D, éditer profile de l’utilisateur « postgres », on va ajouter la nouvelle variable d’environnement PGDATA dans le fichier profile de l’utilisateur « postgres » :

vi /home/postgres/.bash_profile

Pour ceux qui n'utilisent pas l'éditeur vi, ils peuvent utiliser n'importe quel autre éditeur par exemple gedit :

gedit /home/postgres/.bash_profile

Et on ajoute dans ce fichier la ligne suivante :

export PGDATA= /usr/local/pgsql/data

2-6) Service Postgres

On peut dire que l’installation est achevée, mais ce qu’on va essayer de faire maintenant est plus délicat, car on va essayer de rendre PostgreSQL un service qui démarre lors du démarrage de la machine.

Comme les développeurs de PostgreSQL sont gentils, ils ont préparé les scripts de démarrage pour différentes plateformes. Ceux-ci se trouvent dans le répertoire /usr/src/PG/contrib/start-scripts/ sous le nom de « linux ». Par exemple sous Debian, on copiera le script « linux » vers /etc/init.d/postgres :

cp /opt/sources/postgresql-8.2.3/contrib/start-scripts/linux /etc/init.d/postgres

Reste donc la mise à jour de la liste des services :

update-rc.d postgres defaults

Bravo! Tout s’est bien passé☺. L’installation est achevée à 100% et votre Serveur PostgreSQL démarre lors du démarrage de la machine.

2-7) Démarrage de PostgreSQL

Ce Qui reste pour la suite c’est la phase test, alors pour cela on va donner que les commandes de démarrage, arrêt, recharge des paramètres et redémarrage du serveur PostgreSQL et qui sont comme suit :

Démarrer postgreSQL :

/etc/init.d/postgres start

Ou bien :

pg_ctl start

Si tout marche bien vous allez essayer de vous connecter à votre SGBD PostgreSQL en utilisant la commande :

psql –U postgres

Et vous aurez sur le terminal :

Welcome to psql 8.2.3, the PostgreSQL interactive terminal.

Page 6: PostgreSQL sous linux

PostgreSQL : Installation sous linux

Licence Professionnelle Administration des bases de données 6

Type: \copyright for distribution terms

\h for help with SQL commands

\? for help with psql commands

\g or terminate with semicolon to execute query

\q to quit

postgres=#

Arrêter postgreSQL :

/etc/init.d/postgres stop

Ou bien :

pg_ctl stop

Recharger les paramètres postgreSQL :

/etc/init.d/postgres reload

Ou bien :

pg_ctl reload

Redémarrer postgreSQL :

/etc/init.d/postgres restart

Ou bien

pg_tcl restart