postgresql sous linux

Download PostgreSQL sous linux

Post on 22-May-2015

5.899 views

Category:

Education

0 download

Embed Size (px)

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

  • 1. PostgreSQL : Installation sous linuxRAOYAUME DU MAROC ADMINISTRATION DES BASES DE DONNEES UNIVERSITE IBN TOUFAIL LICENCE PROFESSIONNELLE KENITRA REALISE PAR : Mr. Khalid ALLILIMr. Noureddine EL FIZAZI ANNEE UNIVERSITAIRE 2006/2007Licence Professionnelle Administration des bases de donnes 1

2. PostgreSQL : Installation sous linux 1) Introduction Il existe diffres 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 prparation, la compilation et l'installation. Lutilit de ce type d'installation rside dans le fait quelle marche dans les diffrentes distributions et de bien contrler les paramtres de l'installation. Des erreurs peuvent tre engendres pendant la prparation et la compilation, en raison des dpendances des bibliothques. Les plus importantes sont : gcc / g++ : Compilateur C de GNU. libreadline : bibliothque qui permet davoir accs lhistorique de requte dans lemoniteur interactif psql. zlib : bibliothque ncessaire pour la cration darchives lors de la sauvegardes de bases dedonnes en archive tar ou compresses. 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 rpertoire source, et /usr/local comme rpertoire d'installation (c'est le rpertoire par dfaut). La version PostgreSQL qu'on a utilis est : postgresql-8.2.3 tlchargeable 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) Cration d'un super utilisateur Les programmeurs de PostgreSQL pour des raisons de scurit (impliquant des failles/fuites de scurits selon les droits accords cet utilisateur sous Linux qui peuvent tre due des attaques de requtes de type quot;SQL injectionquot; par le rseau ou par une mauvaise utilisation des modules objets chargs dans les bases par de simples utilisateurs etc...) ont imposs que les utilisateurs devaient avoir des droits limits sur la machine o PostgreSQL tourne. Pour crer un super utilisateur qu'on nommera quot;postgresquot; on utilise la commande :Adduser postgres On indique par la suite le mot de passe et d'autres informations tel que : nom $> adduser postgresAjout de l'utilisateur postgres ...Ajout du nouveau groupe postgres (1002).Ajout du nouvel utilisateur postgres (1002) avec le groupe postgres .Le rpertoire personnel /home/postgres existe dj. Pas de recopiede /etc/skel .Enter new UNIX password:Retype new UNIX password:passwd : le mot de passe a t mis jour avec succsLicence Professionnelle Administration des bases de donnes2 3. PostgreSQL : Installation sous linux Modification des informations relatives l'utilisateur postgres Entrez la nouvelle valeur ou Entre pour conserver la valeur proposeNom complet []: Super utilisateur PostgresNo de bureau []:Tlphone professionnel []:Tlphone personnel []:Autre []: Ces informations sont-elles correctes [o/N] ? o $> 2-2) Prparation de l'installation Afin dorganiser notre installation on va crer 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 Dcompresser 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 prparer l'installation on utilise : ./configure On peut connatre les options de la prparation 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 vrifier 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 rpertoire : /use/local/pgsql Licence Professionnelle Administration des bases de donnes 3 4. PostgreSQL : Installation sous linux2-4) Configuration systme Pour excuter les commandes PostgreSQL, qui existent dans /usr/local/pgsql/bin, partir de n'importe quel emplacement, on va donc dclarer les chemins contenants les commandes ainsi que les bibliothques 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 bibliothque Postgresexport LD_LIBRARY_PATH=/usr/local/pgsql/lib# Chemin des commandes Postgresexport PATH=/usr/local/pgsql/bin:$PATHPour vrifier : Se connecter entend que utilisateur postgres $> su postgresPassword :$> env | grep PATH= N.B : Si vous oublier quot;-quot; entre quot;suquot; et le nom d'utilisateur les variable d'environnement ne seront pas charges.2-5) Initialisation Il faut donner les droits aux utilisateurs, afin quils puissent exploiter PostgreSQL :chmod o+rw /usr/local/pgsql/ PostegreSQL utilise un dossier comme cluster (le dossier qui va contenir les bases de donnes), pour ce tutorial, on va prendre /usr/local/pgsql/data comme cluster pour cela on doit le crer :mkdir /usr/local/pgsql/data Puisque lutilisateur postgres est le super utilisateur du PostgreSQL, alors il doit tre le propritaire de /usr/local/pgsql/data/ :chown postgres /usr/local/pgsql/data -R Ltape suivante consiste initialiser PostgreSQL, pour cela on doit indiquer que le dossier quon a cr /usr/local/pgsql/data est le cluster par dfaut. Le super utilisateur postgres qui se charge de linitialisation, donc on doit se connecter en tend que postgres :su - postgresPassword : La commande pour initialiser postgreSQL est :initdb -D /usr/local/pgsql/data -A md5 WLicence Professionnelle Administration des bases de donnes 4 5. PostgreSQL : Installation sous linux 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 locauxpeuvent avoir accs au serveur sans scurit. Pour ne pas crire a chaque fois -D, diter profile de lutilisateur postgres , on va ajouter la nouvelle variable denvironnement PGDATA dans le fichier profile de lutilisateur 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/data2-6) Service Postgres On peut dire que linstallation est acheve, mais ce quon va essayer de faire maintenant est plus dlicat, car on va essayer de rendre PostgreSQL un service qui dmarre lors du dmarrage de la machine. Comme les dveloppeurs de PostgreSQL sont gentils, ils ont prpar les scripts de dmarrage pour diffrentes plateformes. Ceux-ci se trouvent dans le rpertoire /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 sest bien pass. Linstallation est acheve 100% et votre Serveur PostgreSQL dmarre lors du dmarrage de la machine.2-7) Dmarrage de PostgreSQL Ce Qui reste pour la suite cest la phase test, alors pour cela on va donner que les commandes de dmarrage, arrt, recharge des paramtres et redmarrage du serveur PostgreSQL et qui sont comme suit : Dmarrer 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.Licence Professionnelle Administration des bases de donnes5 6. PostgreSQL : Installation sous linuxType: 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 quitpostgres=# Arrter postgreSQL :/etc/init.d/postgres stop Ou bien :pg_ctl stop Recharger les paramtres postgreSQL :/etc/init.d/postgres reload Ou bien :pg_ctl reload Redmarrer postgreSQL :/etc/init.d/postgres restart Ou bienpg_tcl restart Licence Professionnelle Administration des bases de donnes 6