• Aucun résultat trouvé

[PDF] Introduction au langage PHP : Installation et configuration | Formation informatique

N/A
N/A
Protected

Academic year: 2021

Partager "[PDF] Introduction au langage PHP : Installation et configuration | Formation informatique"

Copied!
17
0
0

Texte intégral

(1)

209

Annexe A

Installation Apache/PHP/MySQL

Sommaire

A.1 Installation sous Linux . . . 209

A.1.1 Installation `a partir d’un package RPM . . . 210

A.1.2 Installation `a partir des codes sources . . . 210

A.1.3 MySQL . . . 211

A.1.4 PHP . . . 214

A.1.5 Apache . . . 214

A.2 Installation sous Windows . . . 216

A.2.1 MySQL . . . 216

A.2.2 Apache . . . 217

A.2.3 PHP . . . 218

A.3 Compl´ements d’installation pour MySQL . . . 218

A.3.1 Mot de passeroot . . . 219

A.3.2 Fichiers de configuration . . . 219

A.3.3 phpMyAdmin . . . 222

Nous d´ecrivons dans cette annexe l’installation et la configuration d’un environnement complet MySQL/PHP/Apache sous Linux ou sous Windows. En g´en´eral, une installation se reposant au maximum sur les options par

d´efaut ne pose aucun probl`eme particulier. Cela ´etant il suffit de peu de choses pour que des probl`emes surgissent. Afin de vous aider `a surmonter ces obstacles ´eventuels, nous donnons une explication assez d´etaill´ee du pourquoi et du comment de chaque commande.

La premi`ere chose `a faire est de t´el´echarger les logiciels. Tout est gratuit ! Voici les sites de r´ef´erence pour trouver la derni`ere version.

– Pour MySQL, c’est www.mysql.com. – Pour PHP, c’est www.php.net. – Pour Apache, c’est www.apache.org.

– Si vous souhaitez phpMyAdmin, c’est www.phpwizard.net.

Pour Linux, les logiciels s’obtiennent soit sous la forme de packages RPM contenant tous les pro-grammes compil´es, soit sous la forme d’un fichier archivetarcompress´e, en g´en´eral avec gunzip, conte-nant le code source qu’il faut alors compiler. La version Windows est fournie sous forme d’une archive .zip contenant les programmes ex´ecutables.

A.1

Installation sous Linux

Cette installation suppose une maˆıtrise minimale des commandes UNIX, la compr´ehension des prin-cipes de base d’une installation logicielle (compilation, fichiersmakefile, fichiers sources et fichiers binaires, etc), et la possibilit´e de travailler sous le compteroot.

(2)

A.1.1

Installation `a partir d’un package RPM

Cette m´ethode permet une installation tr`es simple d’une version pr´e-compil´ee d’un logiciel. Il suffit de r´ecup´erer un fichier package.rpm correspondant au processeur de votre machine, comme par exemple part

MySQL-VERSION.i386.rpm pour un processeur Intel. On installe ensuite avec la commande Unixrpm -i package.rpm.

A.1.2

Installation `a partir des codes sources

Cette m´ethode est un peu plus compliqu´ee, mais elle permet en contrepartie d’avoir un contr ˆole total sur les param`etres de l’installation. La premi`ere chose `a faire est de d´ecompresser chaque fichier, et d’en extraire les sources dans un r´epertoire de votre machine. Nous allons effectuer des choix standard pour tout ce qui concerne les emplacements des logiciels, mais vous ˆetes libres d’agir comme bon vous semble si vous vous sentez suffisamment comp´etent. Les sources seront install´ees dans /usr/local/src. Voici comment cela se passe par exemple pour MySQL.

1. Si le r´epertoire /usr/local/src n’existe pas, cr´eez-le : % cd /usr/local

% mkdir /usr/local/src

2. Copiez le fichier mysql-version.tar.gz dans /usr/local/src. NB :versionindique ici le num´ero de la version que vous avez t´el´echarg´ee. On suppose dans ce qui suit qu’il s’agit de la 3.23.9. % cp mysql-3.23.9.tar.gz /usr/local/src

3. Allez dans /usr/local/src et d´ecompressez le fichier avec gunzip (extension.gz) ou uncompress (extensions.Z).

% gunzip mysql-3.23.9.tar.gz

On obtient le fichier d´ecompress´e mysql-3.23.9.tar. 4. Il reste `a extraire tous les fichiers de l’archive .tar avec :

% tar xvf mysql-3.23.9.tar

Cette extraction cr´ee un r´epertoire mysql-3.23.9 dans /usr/local/src et y place tous les fichiers. Faire de mˆeme avec les archives Apache et PHP. Dans ce qui suit on suppose que les versions de ces logiciels sont respectivement apache 1.3.4 et php-4.0.

Compilateur

´

Eventuellement, il faut r´ecup´erer aussi le compilateur GNU C++ si vous ne l’avez pas. On peut le trouver par exemple `a http://www.gnu.ai.mit.edu/software/gcc/gcc.html ou sur un site miroir GNU. Vous avez besoin de la version 2.8.1 (au moins) pour pouvoir compiler MySQL. Voici les commandes permettant d’installer le compilateur :

1. R´ecup´erez par le fichier gcc-2.8.1.tar.gz (ou version sup´erieure) et placez le dans /usr/local/src. 2. D´ecompressez l’archive, et extrayez son contenu :

% gunzip gcc-2.8.1.tar.gz % tar xvf gcc-2.8.1.tar

Ce qui cr´ee un nouveau r´epertoire gcc-2.8.1 dans /usr/local/src. 3. Placez vous dans ce r´epertoire avec la commande

% cd gcc-8.2.1

4. Entrez successivement les commandes suivantes : % ./configure

% make

% make install

C’est tout ! Par d´efaut, l’installation se fait dans/usr/local/bin. Il faut donc mettre ce r´epertoire au d´ebut de la variablePATH, avec une commande qui d´epend du shell employ´e, ici pour les shell de type

Bourne comme bash :

(3)

A.1. INSTALLATION SOUS LINUX 211

Vous pouvez v´erifier alors que tout s’est bien pass´e avec la commandegcc -vqui devrait vous afficher gcc version 2.8.1 (ou version sup´erieure). Vous ˆetes maintenant prˆets `a installer successivement MySQL, puis le couple PHP/Apache. Globalement ces installations suivent toujours le processus d´ecrit ci-dessus pour gcc, qui se r´esume aux trois commandesconfigure,makeetmake install.

1. configure analyse votre environnement Linux et v´erifie que tous les ´el´ements n´ecessaires (compila-teur, librairies) sont disponibles. configure produit ´egalement un fichier makefile qui contient toutes les commandes de compilation et d’´edition de liens.

2. make ex´ecute le makefile produit durant l’´etape pr´ec´edente. Il s’agit souvent de la partie la plus longue puisque tous les fichiers sources doivent ˆetre compil´es. `A la fin de cette ´etape tous les programmes ex´ecutables ont ´et´e cr´e´es.

3. La commandemake installcompl`ete l’installation en transf´erant dans un r´epertoire ind´ependant tous les ex´ecutables, librairies, et fichiers de scripts. Tout utilisateur souhaitant utiliser le logiciel de-vra avoir acc`es `a ce r´epertoire.

Et en cas de probl`eme ? L`a il faut faire preuve d’esprit d’initiative. Vous pouvez en g´en´eral recom-mencer le processus d’installation en tapantmake clean qui d´etruit tous les fichiers r´esultant d’une compilation. Souvent les probl`emes sont d´etect´es par configure dont un des rˆoles est justement de s’assu-rer que l’environnement est suffisant pour que tout se passe bien par la suite. Il se peut que vous ayez `a r´ecup´erer des logiciels compl´ementaires, comme par exemple flex, un analyseur lexical utilis´e par PHP. En principe ces logiciels se trouvent facilement sur le Web, et s’installent selon les ´etapes standard illustr´ees ci-dessus avec gcc.

Remarque : Si vous rencontrez des difficult´es lors de l’installation d’un logiciel, une explication possible

est que la proc´edure que nous d´ecrivons a ´evolu´e, ou que votre version particuli`ere de Linux (nous utilisons une Suse 7) se comporte diff´eremment. On trouve partout sur le Web, en utilisant un moteur de recherche, des notices d’installation `a jour : cherchez celle qui correspond `a votre configuration et suivez ses instruc-tions.

A.1.3

MySQL

Voyons maintenant pas `a pas l’installation et la mise en route de MySQL. Il y a trois grandes ´etapes. Tout d’abord il faut compiler et installer tous les fichiers. Puis il faut installer une premi`ere base, lancer le serveur, et v´erifier que tout va bien. Enfin il faut param´etrer l’environnement de travail, en cr´eant notamment un utilisateur UNIXmysql(ou autre) qui sera charg´e de l’administration.

Installation d’un package RPM

Il faut r´ecup´erer d’une part MySQL-VERSION.i386.rpm, pour le serveur,VERSION ´etant bien en-tendu la derni`ere version stable de MySQL au moment de l’installation, et d’autre part

MySQL-client-VERSION.i386.rpm pour les utilitaires.

La commande suivante affiche le contenu d’un package : % rpm -qpl MySQL-VERSION.i386.rpm

Pour effectuer l’installation, il suffit d’entrer la commande suivante :

% rpm -i MySQL-VERSION.i386.rpm MySQL-client-VERSION.i386.rpm

Le r´epertoire des bases de donn´ees est alors /var/lib/mysql. Vous pouvez passer ensuite `a la partie Initialisation.

Compilation

Le r´epertoire standard pour les ex´ecutables est /usr/local/mysql. Pour la configuration on se place dans

mysql-3.23.9 et on proc`ede comme suit :

(4)

Cette commande analyse l’environnement et cr´ee un fichier makefile. L’option--prefixindique le r´epertoire final d’installation. Il existe beaucoup d’autres options qui permettent, par exemple, d’indiquer un emplacement sp´ecifique pour les fichiers des bases de donn´ees.

On ex´ecute ensuite : % make

et les instructions du makefile vont ˆetre utilis´ees pour compiler tout les fichiers sources. On est toujours dans mysql-3.23.9 : il reste `a installer tout ce qui est n´ecessaire `a l’ex´ecution dans /usr/local/mysql avec la commande

% make install

MySQL est prˆet ! Tous les ex´ecutables, ainsi que des fichiers utilitaires, sont dans /usr/local/mysql/bin. Il faut donc placer ce r´epertoire dans la variablePATHde tout utilisateur souhaitant acc´eder `a ces pro-grammes. Cela donne, sous lecshell:

% setenv PATH /usr/local/mysql/bin:$PATH Ou encore, sous lekshellou bash (le plus courant sous Linux) : % export PATH=/usr/local/mysql/bin:$PATH

Ces commandes devraient ˆetre plac´ees dans le fichier shell qui est ex´ecut´e automatiquement quand un utilisateur se connecte `a Unix. Selon le cas ce fichier peut ˆetre .profile, .bashrc, .login, etc.

Initialisation

Il faut maintenant cr´eer une premi`ere base MySQL. Voici les diff´erentes ´etapes :

1. Cr´eation d’un r´epertoire contenant les bases de donn´ees, et d’une premi`ere base,mysql, pour le dictionnaire des utilisateurs.

2. Lancement et arrˆet du d´emonmysqld`a chaque arrˆet/d´emarrage du syst`eme Linux.

Il est fortement conseill´e de ne pas utiliser le compterootpour g´erer les fichiers de bases de donn´ees. Le fait, notamment, d’ex´ecuter le serveur mysqld sousrootsignifie que ce serveur aurait tous les droits sur les ressources de la machine, ce qui est peu prudent. La premi`ere chose `a faire est donc de cr´eer un comptemysql(ou autre), rattach´e `a un groupe particulier, et ayant des droits limit´es. Essentiellement, cet utilisateur doit pouvoir lire et ´ecrire dans le r´epertoire contenant les bases de donn´ees.

Dans ce qui suit, nous supposons que le r´epertoire racine de toutes les bases est /usr/local/mysql/var, ce qui est le choix de la configuration par d´efaut (vous pouvez changer cette option au moment du configure). Ce r´epertoire doit appartenir `a l’utilisateurmysql. Proc´edez de la mani`ere suivante :

1. Sousroot, d´eclarez le compte mysql propri´etaire des droits sur /usr/local/mysql, et ses sous-r´epertoires.

% cd /usr/local

% chown -R mysql mysql

2. Connectez-vous sous le compte Unixmysql. 3. Cr´eez la base initiale avec les commandes suivantes.

% cd /usr/local/src/mysql-3.23.9/scripts % ./mysql install db

Vous devriez, dans /usr/local/mysql/var, avoir deux r´epertoires nomm´es respectivement mysql et test. Le r´epertoire mysql contient les fichiers de la basemysql(d´esol´e, beaucoup de choses s’appellentmysql!), d´ecrivant les utilisateurs et les droits d’acc`es. La commandels -l *.frmdevrait afficher quelque chose comme : -rw-rw---- 1 mysql columns_priv.frm -rw-rw---- 1 mysql db.frm -rw-rw---- 1 mysql func.frm -rw-rw---- 1 mysql host.frm -rw-rw---- 1 mysql tables_priv.frm -rw-rw---- 1 mysql user.frm

(5)

A.1. INSTALLATION SOUS LINUX 213

Lancement et arrˆet manuels du serveur

Pour tester l’installation, il ne reste plus qu’`a lancer le serveur mysqld avec le script safe mysqld qui se trouve dans le r´epertoire scripts.

% ./safe mysqld& Si tout va bien, le message

Starting mysqld daemon with databases from /usr/local/mysql/var

devrait s’afficher. Le serveur est lanc´e, et vous pouvez acc´eder `a la base avec un des programmes clients qui se trouvent dans mysql/bin. La commandemysqlshowdevrait par exemple, `a ce stade, afficher le r´esultat suivant : +---+ | Databases | +---+ | mysql | | test | +---+

Vous pouvez ´egalement utiliser mysqladmin avec ses tr`es nombreuses options. Par exemple la com-mande

% mysqladmin ping

devrait r´epondremysqld is alive. Pour arrˆeter manuellement le serveur, on utilise ´egalement

mysq-ladmin :

% mysqladmin -u root shutdown

Lancement et arrˆet automatiques du serveur

Le serveur devrait ˆetre lanc´e et stopp´e automatiquement avec le syst`eme. Nous donnons ci-dessous une mani`ere classique de proc´eder, `a adapter `a chaque cas.

Le fichier mysql.server, dans le r´epertoire support-files, fournit un script prˆet `a l’emploi pour lan-cer/stopper le serveur de MySQL. Ce script accepte les param`etresstartoustop. Il suffit en principe de le placer dans un des r´epertoires d’initialisation du syst`eme.

1. Connectez-vous sous le compte Unixroot 2. Copiez mysql.server dans /etc/rc.d

% cd /usr/local/src/mysql-3.23.9/support-files % cp mysql.server /etc/rc.d

% cd /etc/rc.d

% chmod u+x mysql.server

3. ´Editez le fichier mysql.server et remplacez la ligne mysql daemon user=root

par

mysql daemon user=mysql.

4. Indiquez au syst`eme que le script doit ˆetre ex´ecut´e au niveau 3 du lancement de Linux. % cd rc3.d

% ln -s ../mysql.server K99mysql % ln -s ../mysql.server S99mysql

Le serveur de MySQL sera lanc´e et stopp´e automatiquement avec Linux. Le processus ci-dessus d´epend fortement de votre configuration. Consultez votre documentation ou votre administrateur syst`eme si besoin est.

Pour compl´eter l’installation de MySQL, il est indispensable, entre autres, de donner un mot de passe au compterootde MySQL. Les commandes n´ecessaires sont communes `a Linux et `a Windows, et sont pr´esent´ees page 218.

(6)

A.1.4

PHP

Le principe est le mˆeme que pr´ec´edemment, `a ceci pr`es qu’il faut indiquer `a PHP que, d’une part, les fonctions d’acc`es `a MySQL doivent ˆetre int´egr´ees dans la librairie, et d’autre part que le module PHP doit ˆetre ajout´e `a Apache.

Pour des raisons obscures, Apache doit ˆetre configur´e une premi`ere fois. Cr´eez un r´epertoire /usr/local/apache1, puis ex´ecutez les commandes suivantes :

% cd /usr/local/src/apache 1.3.4 % ./configure

Maintenant on peut installer PHP. Voici les commandes, semblables `a celles d´ej`a vues pour MySQL. % cd /usr/local/src/php-4.0

% ./configure --with-mysql --with-apache=../apache 1.3.4 % make

% make install

L’option--with-mysql, sans indiquer de valeur, marche si on a bien install´e MySQL dans /usr/local parce que ce r´epertoire fait partie des choix par d´efaut que la configuration de PHP connaˆıt. D`es que l’on fait des choix d’installation qui s’´ecartent du standard, les param`etres `a sp´ecifier sont beaucoup plus nombreux et les risques de probl`emes plus grands.

En principe les commandes ci-dessus fonctionnent sans probl`eme. Dans le cas contraire, ou si vous n’ˆetes pas tout `a fait sˆur de votre environnement, cela vaut la peine de lire le fichier INSTALL qui se trouve dans le r´epertoire php-4.0.

Le fichier php.ini

Derni`ere chose `a faire pour installer PHP : copier le fichier php.ini dans /usr/local/lib. Ce fichier est fourni dans php-4.0. Il contient toutes les options d’ex´ecution de PHP. On peut sp´ecifier des choses aussi diverses que les balises prises en compte, la pr´ecision des calculs, les fichiers qui doivent ˆetre inclus auto-matiquement, des restrictions de s´ecurit´e, etc. La table A.1 donne les principales options.

php.ini est lu par Apache `a chaque ex´ecution du serveur httpd, ce qui permet de changer facilement

toutes les options. Dans un premier temps vous pouvez le laisser avec tous les choix par d´efaut. Si vous ˆetes curieux, vous pouvez l’´editer : les commentaires sont nombreux et clairs. Profitez de l’occasion pour v´erifier les param`etres suivants :

1. track varsdevrait ˆetre `aOnpour permettre la r´ecup´eration de variables dans les tableauxHTTP VARS. 2. magic quote gpcpeut valoiroffouon. La valeuronest recommand ´ee : elle permet de pr´efixer

automatiquement par ’\’ tous les caract`eres saisis dans les formulaires ou provenant de cookies qui risqueraient de poser probl`eme avec MySQL. Par exemple la simple quote (’) est transform´ee en (\’).

3. magic quotes runtimedevrait valoirOff. Ainsi les donn´ees provenant de MySQL ne seront pas modifi´ees, mˆeme si elles contiennent des (’).

Ce comportement est celui qui pose le moins de probl`emes puisqu’il ´evite d’avoir `a utiliser syst´ematiquement les fonctions addSlashes et stripSlashes.

Pour un site en exloitation, il est recommand ´e d’activer l’option safe mode, et de restreindre le plus possible des fichiers auxquels un script PHP peut acc´eder.

A.1.5

Apache

Il ne reste plus qu’`a installer Apache, en pr´ecisant bien que le module PHP4 doit ˆetre activ´e. Voici les commandes.

% cd /usr/local/apache_1.3.4

% ./configure --prefix=/usr/local/apache \

(7)

A.1. INSTALLATION SOUS LINUX 215

Option Description

auto append filefichier Nom d’un fichier qui doit ˆetre syst´ematiquement inclus au d´ebut de tout script.

auto prepend filefichier Nom d’un fichier qui doit ˆetre syst´ematiquement inclus `a la fin de tout script.

doc rootr´epertoire Nom du r´epertoire racine de PHP. Quand l’option

safe mode est activ´ee, les seuls scripts PHP accessibles

sont ceux situ´es sous ce r´epertoire.

open basedirr´epertoires Liste des r´epertoires accessibles aux fonctions d’acc`es aux fichiers de PHP. La valeur . indique que seuls les

fichiers du r´epertoire courant peuvent ˆetre ouverts.

include pathr´epertoires Liste des r´epertoires o `u chercher les fichiers pour les commandes require et include. Cette option per-met de cr´eer des librairies PHP sous la forme de

r´epertoires contenant les scripts des fonctions ou classes utiles `a plusieurs sites.

magic quotes gpcboolean Sion, les apostrophes,



et NULL sont automatiquement pr´ec´ed´es d’un



pour les variablesGET,POSTet les

co-okies.

magic quotes runtimeboolean Sion, les apostrophes,



et NULL sont automatiquement pr´ec´ed´es d’un



pour les chaˆınes provenant d’une base de donn´ees ou d’un fichier.

max execution timesecondes Temps maximal d’ex´ecution d’un script.

memory limitoctets Taille maximale de la m´emoire allou´ee `a un script.

track varsboolean Si on, les tableaux associatifs HTTP GET VARS, HTTP POST VARSetHTTP COOKIE VARSsont cr´e´es au d´ebut de chaque script.

upload tmp dirr´epertoire Nom du r´epertoire o `u sont plac´es les fichiers provenant du client. Apache doit pouvoir ´ecrire dans ce r´epertoire.

safe modeboolean Si on, PHP est ex´ecut´e en mode s´ecuris´e. Dans ce cas seuls les scripts situ´es sous doc root peuvent ˆetre ex´ecut´es.

safe mode exec dirr´epertoire Si PHP est ex´ecut´e en mode s´ecuris´e, seuls les pro-grammes situ´es dans ce r´epertoire pourront ˆetre ex´ecut´es avec la fonction system.

TAB. A.1 – Options de configuration du fichier php.ini

--activate-module=src/modules/php4/libphp4.a % make

% make install

On aboutit `a une installation dans /usr/local/apache. Elle contient, dans le sous-r´epertoire bin, le serveur

httpd, ainsi que des fichiers de configuration qu’il faut l´eg`erement modifier.

– ´Editez le fichier /usr/local/apache/conf/httpd.conf.

– Modifiez la ligne qui contientDirectoryIndexcomme suit DirectoryIndex index.php index.html Par d´efaut, Apache chargera un fichier index.php s’il le trouve.

– Indiquez les extensions qui correspondent aux fichiers PHP. Les lignes existent d´ej`a en commentaires dans httpd.conf : il faut retirer le #pour que Apache reconnaisse les extensions des fichiers qui

(8)

doivent ˆetre trait´es par le moteur PHP.

AddType application/x-httpd-php .php

Et voil`a ! Il ne reste plus qu’`a lancer Apache. % cd /usr/local/apache

% ./bin/apachectl start

httpd est lanc´e et se met en ´ecoute sur le port 80 (`a moins que vous n’ayez chang´e la valeur dePort dans httpd.conf ). Pour lancer et stopper Apache avec Linux, proc´edez comme indiqu´e pour le serveur MySQL, en utilisant le script apachectl.

Les documents HTML doivent alors ˆetre plac´es dans le r´epertoire htdocs, ou dans un sous-r´epertoire de ce dernier.

Vous disposez maintenant d’un environnement de travail qui vous permet, par exemple, de r´ecup´erer le code de notre site, de l’installer et de le modifier `a votre guise. Pour aller plus loin et disposer d’un site performant et s´ecuris´e, il faut imp´erativement soigner la configuration d’Apache.

Une solution simple et efficace pour prot´eger l’acc`es de vos fichiers est de cr´eer un compte utilisateur pour Apache, et de le rattacher `a un groupe dont il est le seul membre. Vous pouvez par exemple cr´eer un groupeapachegrp, un utilisateur apachedans ce groupe, et demander `a Apache d’ex´ecuter ses processus sous ce compte utilisateur avec les directivesUseretGroupdu fichier httpd.conf.

Il reste alors `a restreindre les droits d’acc`es aux fichiers constituant un site – notamment ceux qui contiennent des mots de passe – `a cet utilisateur. Placez-vous dans htdocs, et entrez la commande :

% chown -R apache .

qui permet de rendre le compteapachepropri´etaire de tous les fichiers. Puis restreignez les droits d’acc`es avec la commande :

% chmod -R og-rwx .

Tout ceci n’est qu’une premi`ere ´etape. Si vous voulez vraiment maˆıtriser l’administration de votre site, il est imp´eratif de recourir `a des ouvrages sp´ecialis´es. Nous vous renvoyons par exemple au livre Webmaster

in a nutshell, aux ´Editions O’Reilly.

A.2

Installation sous Windows

L’installation sous Windows (95, 98, 2000 ou WindowsNT) est facilit´ee par le fait que les logiciels sont fournis dans une version pr´e-compil´ee, et accompagn ´es (pour Apache et MySQL) d’un programme d’installation qui s’occupe `a peu pr`es de toutes les tˆaches. Un inconv´enient est que le module PHP n’est pas int´egr´e `a Apache, mais fonctionne comme un programme s´epar´e qui est appel´e (comme un programme CGI) `a chaque chargement d’un fichier PHP.

A.2.1

MySQL

MySQL est fourni pour Windows sous forme d’un fichier archive (.zip) assez volumineux (pr`es de 9 M´egaoctets). Apr`es r´ecup´eration de ce fichier, vous pouvez le d´ecompresser avec winzip, ce qui permet d’obtenir un programme d’installation.

Lancez ce programme. Une interface graphique classique apparaˆıt, avec une suite d’´ecran proposant des options d’installation. Le plus simple est d’adopter syst´ematiquement les valeurs par d´efaut, et notamment d’accepter C:/MySQL comme r´epertoire d’installation.

Quand l’installation est termin´ee, C:/MySQL contient, entre autres, un sous-r´epertoire bin dans lequel on trouve les programmes de MySQL, dont le serveur. La proc´edure de lancement du serveur mysqld varie l´eg`erement selon la version de Windows.

(9)

A.2. INSTALLATION SOUS WINDOWS 217

Windows NT

MySQL peut ˆetre install´e comme un service de NT. Dans une fenˆetre MS-DOS, placez-vous dans

C:/MySQL/bin et entrez la commande :

mysqld-nt --install

MySQL apparaˆıt alors dans la liste des services (consultables `a partir du panneau de configuration) et le serveur sera lanc´e automatiquement au d´emarrage de Windows NT. On peut aussi lancer ou arrˆeter manuellement le serveur dans une fenˆetre MS-DOS avec les commandes :

net start mysql net stop mysql

Si on ne veut pas utiliser MySQL comme un service NT, on peut aussi lancer simplement le serveur avec la commande :

mysqld-nt --standalone

Pour arrˆeter manuellement le serveur dans ce cas on utilise mysqladmin. mysqladmin -u root -p shutdown

Autres versions de Windows

Pour les autres versions de Windows, il suffit de lancer le serveur mysqld en cliquant sur son icˆone. Pour l’arrˆeter on utilise mysqladmin, dans une fenˆetre MS-DOS.

mysqladmin -u root -p shutdown

L’option -p est inutile tant que vous n’avez pas donn´e de mot de passe `a l’utilisateurrootde MySQL. Sous Windows, les utilisateurs ont par d´efaut tous les droits sur toutes les bases. Il est imp´eratif de donner un mot de passe `arootet de supprimer l’utilisateur anonyme pour s´ecuriser le syst`eme (voir page 219).

Quelques tests

Les versions r´ecentes de MySQL sont fournies avec un client graphique WinMySQLAdmin qui est tr`es pratique pour administrer le serveur. L’installation avec cet outil est d´ecrite dans le fichier README du r´epertoire C:/MySQL. Sinon les programmes de MySQL existent dans la version Windows sous forme d’ex´ecutables classiques.

On peut, comme pour l’installation sous Linux, appeler mysqlshow, mysqladmin ou mysql `a partir d’une fenˆetre MS-DOS pour v´erifier que l’installation s’est bien pass´ee et que le serveur est `a l’´ecoute.

A.2.2

Apache

Comme MySQL, Apache est fourni avec un programme d’installation graphique. Les ´etapes sont iden-tiques :

1. on r´ecup`ere sur un site Apache une archive zip (beaucoup plus petite que MySQL !) ; 2. en d´ecompressant l’archive, on obtient un programme d’installation ;

3. cliquez sur l’icˆone du programme d’installation et acceptez les choix par d´efaut. Apache est install´e dans :

C:/Program Files/Apache Group/Apache

Un sous-menu Apache est ´egalement cr´e´e dans le menu D´emarrer/Programmes de Windows. Il

contient des options pour installer Apache en tant que service (Windows NT), lancer ou stopper le serveur (autres Windows).

– Windows NT

Apr`es avoir install´e Apache comme un service NT grˆace au choix du menu dans D´emarrer/Programmes/Apache,

on peut lancer ou arrˆeter manuellement le serveur par l’interm´ediaire de la fenˆetre de contr ˆole des services dans le panneau de contr ˆole. Apache est lanc´e automatiquement avec Windows NT.

(10)

– Autres versions de Windows

Le serveur est lanc´e et stopp´e grˆace aux choix du menu Programmes/Apache.

En lanc¸ant un navigateur, puis en acc´edant au site http://localhost, on peut tester l’installation du ser-veur.

A.2.3

PHP

L’archive PHP .zip doit ˆetre d´ecompress´ee dans un r´epertoire, C:/PHP4 de pr´ef´erence. Elle contient un programme ex´ecutable php.exe et des librairies .dll. Il faut commencer par d´eplacer quelques fichiers.

– Copiez le fichier php.ini-dist dans C:/WINDOWS (ou C:/WINNT) ; renommez-le en php.ini. Ce fi-chier contient les options de PHP : quelques informations compl´ementaires sont donn´ees dans la section consacr´ee `a l’installation de PHP sous Linux.

– Copiez les librairies msvcrt.dll et php4ts.dll dans C:/WINDOWS/SYSTEM (il se peut que msvcrt.dll existe d´ej`a, auquel cas il est inutile de la remplacer).

Sous Windows, Apache ex´ecute un script PHP en appelant l’interpr´eteur php.exe. L’essentiel de l’ins-tallation consiste donc `a param´etrer le fichier de configuration Apache pour lui indiquer o `u se trouve ce programme et quels fichiers doivent lui ˆetre transmis. Dans le r´epertoire Apache/conf, ´editez le fichier

httpd.conf et proc´edez comme suit :

1. Cherchez la ligne avecServerAdminet indiquez votre email. Par exemple : ServerAdmin rigaux@cnam.fr

2. Cherchez la ligne avecServerNameet indiquez le nom de l’ordinateur (oulocalhost). Par exemple :

ServerName cartier.cnam.fr

3. Cherchez une ligne avecScriptAlias. Il doit en exister une avec le r´epertoire contenant les programmes CGI. Ajoutez la ligne suivante pour indiquer o `u se trouve l’interpr´eteur PHP4.

ScriptAlias /php4/ "C:/php4/"

Ne pas oublier le dernier ’/’ ! Bien entendu vous devez indiquer le vrai r´epertoire d’installation de PHP4, si vous avez choisi autre chose que C:/PHP4.

4. Maintenant il faut indiquer `a Apache l’extension des fichiers PHP. Cherchez la section avec le terme AddTypeet ajoutez :

AddType application/x-httpd-php .phtml .php AddType application/x-httpd-php-source .phps

Vos fichiers devront avoir une extension .php (vous pouvez donner l’extension .babar si vous voulez, mais vos scripts ne seront pas tr`es portables...).

5. Finalement il faut associer les scripts PHP `a l’interpr´eteur, en ajoutant la ligne suivante : Action application/x-httpd-php /php4/php.exe

Arrˆetez et relancez Apache : vous devriez maintenant pouvoir ex´ecuter des scripts PHP. Un test clas-sique consiste `a cr´eer un fichier phpinfo.php dans le r´epertoire Apache/htdocs, avec le contenu suivant.

<?php phpInfo(); ?>

Essayez d’acc´eder `a l’URL localhost/phpinfo.php : la page d’accueil de PHP doit s’afficher.

Et c’est termin´e : L’API MySQL est incluse d’office dans l’interpr´eteur PHP, ce qui ´evite toute mani-pulation suppl´ementaire.

A.3

Compl´ements d’installation pour MySQL

Les instructions qui suivent permettent de compl´eter l’installation de MySQL. Elles sont valables aussi bien pour une installation Windows que pour une installation Linux. Les exemples que nous donnons s’appliquent `a ce dernier syst`eme mais sont ais´ement transposables `a Windows.

(11)

A.3. COMPL ´EMENTS D’INSTALLATION POUR MYSQL 219

A.3.1

Mot de passe

root

Au moment de l’initialisation d’un serveur MySQL, il n’y a que deux utilisateurs :root@localhost avec tous les droits sur toutes les bases, et l’utilisateur anonyme’’@localhostqui n’a aucun droit sur aucune base (sauf pour Windows). Vous pouvez consulter le contenu de la tableuser(voir page 181 pour une description des droits d’acc`es) avec les commandes suivantes.

% mysql -u root

Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 to server version: 3.23.9 Type ’help’ for help.

mysql> USE mysql; Database changed

mysql> SELECT * FROM user;

Au d´epart, il est possible de se connecter sans entrer de mot de passe pour root, ce qui est tr`es dangereux. La premi`ere chose `a faire est d’attribuer un mot de passe `arootavec la commande :

mysql> SET PASSWORD FOR root=PASSWORD(’mdproot’) ;

Bien entendu vous devez choisir un mot de passe raisonnablement difficile `a deviner. Vous pouvez alors vous connecter avec la commande suivante :

% mysql -u root -p

L’utilitaire mysql vous demande le mot de passe `a chaque connexion. Il est possible d’´eviter d’avoir `a effectuer ce contr ˆole du mot de passe r´ep´etitivement en cr´eant un fichier de configuration, d´ecrit dans la section suivante.

L’utilisateur anonyme est une source de confusion, et un probl`eme pour la s´ecurit´e sous Windows. Il est tout `a fait recommand ´e de le supprimer en d´etruisant cet utilisateur dans la table user. Voici les commandes. % mysql -u root -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g .

Your MySQL connection id is 2 to server version: 3.23.9 Type ’help;’ or ’\h’ for help.

mysql> DELETE FROM user WHERE user=’’;

Cr´eation de bases et d’utilisateur

´

Etant connect´e sousroot(attention : il s’agit bien durootde MySQL, qui est diff´erent du compte UNIX), on peut cr´eer des bases et des utilisateurs. Par exemple :

mysql> CREATE DATABASE Films;

mysql> GRANT ALL PRIVILEGES ON Films.* TO adminFilms@localhost IDENTIFIED BY ’mdpAdmin’;

Vous ˆetes maintenant en mesure de cr´eer des tables dans la base, et d’y ins´erer des donn´ees.

A.3.2

Fichiers de configuration

Tous les programmes d’acc`es `a MySQL prennent en compte un ou plusieurs fichiers de configuration. Chaque fichier indique des options pour le serveur ou les clients MySQL.

(12)

Format d’un fichier de configuration

Un fichier de configuration est au format ASCII, et comprend un ensemble de sections. Chaque section commence par une option [section] o `usectionpeut ˆetreserver,client, ou le nom de l’un des programmes clients de MySQL. On trouve ensuite les valeurs des param`etres pour le ou les clients de la section courante.

Un exemple de fichier de configuration, nomm´e my-example.cnf, est fourni dans le r´epertoire

support-files. Voici une partie de ce fichier, illustrant la structure des param`etres de configuration (NB : le caract`ere

’#’ indique une ligne de commentaires). # Pour tous les clients [client] port = 3306 socket = /tmp/mysql.sock # Pour le serveur [mysqld] port = 3306 socket = /tmp/mysql.sock skip-locking set-variable = key_buffer=16M set-variable = max_allowed_packet=1M set-variable = thread_stack=128K # Start logging log

# Pour le client mysql [mysql]

no-auto-rehash

La liste des param`etres accept´es par un programme est donn´ee par l’option--help.

Les diff´erents fichiers

Il y a trois fichiers pris en compte. Sous Unix, MySQL acc`ede `a ces fichiers dans l’ordre indiqu´e ci-dessous, et les param`etres trouv´es en dernier sont consid´er´es comme prioritaires. Il est possible ´egalement de donner, au lancement de chaque programme, une liste de param`etres sur la ligne de commande.

/etc/my.cnf Ce fichier donne les options globales pour tous les serveurs MySQL tournant sur la machine.

On peut y indiquer des choix sur la taille des buffers utilis´es, ou le param´etrage par d´efaut de tel ou tel client MySQL, mais surtout pas des mots de passe ! Ce fichier est accessible en lecture par tous les clients MySQL.

DATADIR/my.cnf Quand il y a plusieurs serveurs, ce fichier, plac´e dans le r´epertoire racine des bases d’un

serveur, permet d’indiquer les options pour ce serveur en particulier.

.my.cnf Plac´e dans le r´epertoire$HOMEd’un utilisateur, ce fichier donne les options et pr´ef´erences de cet utilisateur. On peut y placer le compte de connexion `a MySQL (login et mot de passe) en s’assurant que ce fichier n’est lisible que par l’utilisateur.

Sous Windows, le fichier de configuration doit ˆetre plac´e dans C:



. Malheureusement tout utilisateur ayant un compte sur la machine pourra lire son contenu. ´Evitez donc d’y placer des mots de passe.

Configuration du serveur

Le fichier /etc/my.cnf est particuli`erement utile pour param´etrer le serveur. Entre autres options impor-tantes, on peut :

(13)

A.3. COMPL ´EMENTS D’INSTALLATION POUR MYSQL 221

2. choisir la taille de la m´emoire centrale allou´ee au serveur ;

3. fixer l’une des tr`es nombreuses options de lancement du serveur mysqld. La commande suivante donne toutes les options possibles,

% mysqld --help

Voici un extrait de l’affichage obtenu avec cette commande.

-b, --basedir=path Path to installation directory. All paths are usually resolved relative to this

-h, --datadir=path Path to the database root

-L, --language=... Client error messages in given language. May be given as a full path

-l, --log[=file] Log connections and queries to file

--log-update[=file] Log updates to file.# where # is a unique number if not given.

--pid-file=path Pid file used by safe_mysqld -P, --port=... Port number to use for connection -O, --set-variable var=option

Give a variable an value. --help lists variables --socket=... Socket file to use for connection

-u, --user=user_name Run mysqld daemon as user

La version longue des param`etres ci-dessus peut ˆetre utilis´ee dans le fichier /etc/my.cnf, `a l’int´erieur de la section commanc¸ant parmysqld. Voici l’exemple d’un param´etrage :

[mysqld] port = 3306 socket = /tmp/mysql.sock user = mysql set-variable = key_buffer=64M language = french log log-update

On a donc indiqu´e, entre autres :

1. que les messages doivent ˆetre en franc¸ais (optionlanguage) ;

2. que toutes les connexions et requˆetes `a MySQL sont conserv´ees dans un fichier log (dont le nom est, par d´efaut, mysqld.log et l’emplacement le r´epertoire racine des bases de donn´ees) ;

3. que toutes les mises `a jour sont ´egalement conserv´ees dans un fichier de log (voir la section sur les sauvegardes incr´ementales, page 193) ;

4. que la m´emoire cache pour les index est de 64 M´egaoctets (voir la section sur l’optimisation des performances, page 197).

Configuration d’un compte administrateur

Nous montrons maintenant comment configurer un compte administrateur qui veut se connecter, avec tout client de MySQL, `a la base mysql sous le compte root. Nous prenons comme exemple le client

mysql : voici un extrait des param`etres obtenus parmysql --help. -D, --database=.. Database to use

-e, --execute=... Execute command and quit.

-f, --force Continue even if we get an sql error.

-H, --html Produce HTML output

-O, --set-variable var=option

Give a variable an value. --help lists variables -p, --password=... Password to use when connecting to server

If password is not given it’s asked from the tty. -u, --user=# User for login if not current user

(14)

Dans un environnement Unix, voici comment indiquer avec un fichier de configuration, que l’utilisateur mysqlest l’administrateur de la base de donn´ees. On indique que son compte de connexion `a MySQL est root, on donne le mot de passe (mettez le v ˆotre !), et la base par d´efaut,mysql.

1. Copiez my-example.cnf dans le r´epertoire$HOMEdemysql, et renommez-le en .my.cnf.

2. ´Editez .my.cnf. Le fichier contient plusieurs sections d´edi´ees respectivement aux param`etres du ser-veur, du client, etc. Dans la section commenc¸ant par[client], ajoutez deux lignes comme indiqu´e ci-dessous :

[client]

user = root

password = mdproot

Et dans la section[mysql], d´efinissez la base par d´efaut : [mysql]

database = mysql

3. Il ne reste plus qu’`a prot´eger ce fichier des regards indiscrets % chmod go-rwx .my.cnf

Une fois ce fichier cr´e´e, la commandemysql, ex´ecut´ee sous le compte UNIXmysql, vous connecte directement `a la base mysql sans avoir `a entrer le compte utilisateur, le mot de passe, et sans avoir `a faireUSE mysql. Le principe est g´en´eralisable `a tous les utilisateurs, en leur permettant une connexion automatique `a leur base de r´ef´erence. Vous pouvez par exemple indiquer des options de connexion pour le compte utilisateur d’Apache.

Le compte et le mot de passe sont valables pour tous les clients de MySQL, ce qui permet, sous le comptemysql, d’arrˆeter le serveur sans entrer de mot de passe avec la commande.

% mysqladmin shutdown

A.3.3

phpMyAdmin

Il existe de nombreux outils qui facilitent (au moins pour une prise de contact) la maintenance d’une installation MySQL. Nous d´ecrivons ci-dessous l’installation de phpMyAdmin, une interface d’adminis-tration HTML tr`es populaire.

phpMyAdmin est une tr`es bonne illustration de l’utilisation de PHP en association avec MySQL, et peut s’utiliser aussi bien sous Linux que sous Windows. Il se pr´esente sous la forme d’un ensemble de fichiers PHP. Le fichierDocumentation.htmlpropose une documentation assez br`eve, que l’on peut toujours compl´eter en lisant le code (ce qui demande quand mˆeme un certain courage).

Installation

Nous donnons l’exemple d’une installation de phpMyAdmin, sous Linux. L’installation sous Windows est pratiquement identique puisqu’il n’y a aucune compilation. Dans ce qui suit on suppose que le num´ero de version est 2.0.2.

1. D´ecompresser les fichiers dans le r´epertoire /usr/local/apache/htdocs : % cd /usr/local/apache/htdocs

% cp phpMyAdmin 2.0.2.tar.gz . % gunzip phpMyAdmin 2.0.2.tar.gz % tar xvf phpMyAdmin 2.0.2.tar

2. On obtient un sous-r´epertoire de htdocs, nomm´e phpMyAdmin.

3. ´Editez le fichier config.inc.php et remplacezenglish.inc.phpparfrench.inc.php(en sup-posant que vous pr´ef´eriez le franc¸ais, bien sˆur).

(15)

A.3. COMPL ´EMENTS D’INSTALLATION POUR MYSQL 223

Et c’est fini ! Il devient maintenant possible de v´erifier que les serveurs MySQL et Apache tournent bien, et que phpMyAdmin est disponible. En acc´edant `a l’URL localhost/phpMyAdmin sur votre machine avec Netscape, la page d’accueil de phpMyAdmin sur votre nouvelle base MySQL devrait s’afficher. Notez que vous avez le droit de tout faire (cr´eer des bases, des utilisateurs, etc), sans avoir entr´e un seul mot de passe, tant que vous n’avez pas donn´e un mot de passe au compterootde MySQL !

Param´etrage

Tous les ´el´ements configurables sont en fait dans le fichierconfig.inc.php. La premi`ere chose que l’on peut choisir est la langue de travail qui est par d´efaut l’anglais. C’est d´ej`a fait ci-dessus.

Maintenant la partie importante est situ´ee au d´ebut du fichier. Elle contient la d´efinition d’un tableau cfgServers`a deux dimensions qui comprend autant d’entr´ees que de serveurs MySQL sur la machine h ˆote. L’entr´ee indic´ee par ’1’ correspond au premier serveur. Voici sa d´efinition par d´efaut.

$cfgServers[1][’host’] = ’localhost’;

$cfgServers[1][’port’] = ’’; // = port par d´efaut $cfgServers[1][’adv_auth’] = false; $cfgServers[1][’stduser’] = ’root’; $cfgServers[1][’stdpass’] = ’’; $cfgServers[1][’user’] = ’’; $cfgServers[1][’password’] = ’’; $cfgServers[1][’only_db’] = ’’;

Les optionshostetportpermettent de pr´eciser l’h ˆote du serveur MySQL, et le port d’´ecoute. En principe les valeurs par d´efaut conviennent. L’optionadv authd´etermine le type de protection utilis´e pour l’acc`es `a phpMyAdmin.

Casadv auth=true

Si l’optionadv auth est `atrue, phpMyAdmin transmet au programme client, au moment de la premi`ere demande d’acc`es d’un utilisateur, un document avec un en-tˆete HTML indiquant que l’utilisateur doit s’identifier. Le navigateur produit alors une fenˆetre demandant un nom et un mot de passe qui sont transmis `a phpMyAdmin quand l’utilisateur les a saisis. phpMyAdmin v´erifie que ce compte correspond `a un compte MySQL valide. Si c’est le cas une session est ouverte.

Ce fonctionnement soul`eve un petit probl`eme : pour v´erifier que le compte est correct, il faut disposer d’un autre compte pouvant interroger la base dictionnairemysql! Ce deuxi`eme compte doit ˆetre indiqu´e dans les champsstduseretstdpass. On peut donner le compterootqui a tous les droits sur la base mysql, mais il est un peu gˆenant de mettre en clair le mot de passe derootdans un fichier lisible sur le Web... Un moindre mal est de cr´eer un compte MySQL sp´ecialphpAdminqui a juste le droit d’inspecter les tables demysql.

mysql> GRANT select ON mysql.* TO phpAdmin

-> IDENTIFIED by’mdpPhpAdmin’;

Voici maintenant le param´etrage pour l’authentification d’un utilisateur au moment de la connexion.

$cfgServers[1][’adv_auth’] = true; $cfgServers[1][’stduser’] = ’phpAdmin’; $cfgServers[1][’stdpass’] = ’mdpPhpAdmin’; $cfgServers[1][’user’] = ’’;

$cfgServers[1][’password’] = ’’;

phpMyAdmin se connectera donc avec le comptephpAdmin/mdpPhpAdminpour v´erifier le compte saisi interactivement par l’utilisateur.

(16)

Casadv auth=false

Dans ce cas la connexion `a MySQL se fait avec les valeurs des champsuseretpassword. Il faut renseigner ces champs avec un compte utilisateur. Par d´efaut l’utilisateur anonyme est indiqu´e, ce qui permet de se connecter, et rien de plus.

Si vous ˆetes seul `a utiliser phpMyAdmin, l’optionadv auth=falseest envisageable. Elle impose quand mˆeme d’indiquer un mot de passe utilisateur dans le fichier, par exemple :

$cfgServers[1][’adv_auth’] = false; $cfgServers[1][’stduser’] = ’’; $cfgServers[1][’stdpass’] = ’’;

$cfgServers[1][’user’] = ’adminFilms’; $cfgServers[1][’password’] = ’mdpAdmin’;

Le probl`eme, alors, et que tout le monde peut acc´eder au site phpMyAdmin et se connecter automati-quement `a MySQL. Il est imp´eratif de prot´eger le r´epertoire phpMyAdmin avec le m´ecanisme d’authentifi-cation de Apache. Voici comment proc´eder.

1. Dans un r´epertoire quelconque accessible par Apache, nomm´e rep dans ce qui suit, cr´eez un fichier d’authentification avec le programme htpasswd. Par exemple :

% htpasswd -c admin.pass adminPHP

Le programme vous demande un mot de passe et cr´ee un fichier rep/admin.pass qui contient une entr´eeadminPHP/motDePasse.

2. Indiquez `a Apache que le r´epertoire phpMyAdmin est prot´eg´e par le fichier admin.pass. Vous pouvez ajouter la section suivante dans le fichier httpd.conf (sous-r´epertoire apache/conf ).

<Directory /usr/local/apache/htdocs/phpMyAdmin> AuthName "phpMyAdmin" AuthUserFile rep/admin.pass AuthType Basic require valid-user </Directory>

Bien entendu il faut remplacer rep par le chemin d’acc`es `a admin.pass. Apr`es avoir relanc´e Apache, le compte sera syst´ematiquement demand´e pour tout acc`es `a phpMyAdmin.

Comme tout fichier contenant des mots de passe, config.inc.php doit ˆetre prot´eg´e des regards indis-crets. Limitez les droits en lecture au compte utilisateur de Apache, et les droits en ´ecriture au compte du webmestre du site.

(17)

225

Annexe B

R´ef´erence MySQL

Sommaire

B.1 Types de donn´ees MySQL . . . 225 B.2 Commandes de MySQL . . . 228 B.3 Fonctions SQL . . . 235 Cette annexe est consacr´ee aux commandes, langages et utilitaires de MySQL. Nous commenc¸ons par les types de donn´ees utilisables pour les attributs des tables, avant de passer en revue toutes les commandes du langage SQL et des extensions propos´ees par MySQL.

B.1

Types de donn´ees MySQL

MySQL est remarquablement conforme `a la norme SQL ANSI, contrairement `a d’autres SGBD, plus anciens, dont le syst`eme de types ´etait d´ej`a bien ´etabli avant la parution de cette norme (en 1992). MySQL propose ´egalement quelques variantes et extensions, la principale ´etant la possibilit´e de stocker des attributs de type Binary Long Object (BLOB).

Le tableau B.1 r´esume la liste des types d’attributs, donne la taille de stockage utilis´ee par MySQL, et indique si le type fait partie ou non de la norme SQL ANSI.

Types num´eriques exacts

La norme SQL ANSI distingue deux cat´egories d’attributs num´eriques : les num´eriques exacts, et les

num´eriques flottants. Les types de la premi`ere cat´egorie (essentiellementINTEGERet DECIMAL) per-mettent de sp´ecifier la pr´ecision souhait´ee pour un attribut num´erique, et donc de repr´esenter une valeur exacte. Les num´eriques flottants correspondent aux types couramment utilis´es en programmation (FLOAT, DOUBLE) et ne repr´esentent une valeur qu’avec une pr´ecision limit´ee.

Tous les types num´eriques acceptent l’option ZEROFILLqui indique que l’affichage d’une valeur num´erique se fait avec la largeur maximale, les chiffres ´etant compl´et´es par des z´eros. Par exemple la valeur 3 stock´ee dans un typeINTEGER ZEROFILLsera affich´ee0000000003.

Le typeINTEGERpermet de stocker des entiers, sur 4 octets dans MySQL, mais la taille du stockage n’est pas sp´ecifi´ee par la norme. La taille de l’affichage est fonction de la valeur maximale possible (en l’occurrence 10 positions), mais peut ˆetre pr´ecis´ee optionnellement avec la valeurM comme indiqu´e dans la syntaxe ci-dessous.

INTEGER[(M )] [UNSIGNED] [ZEROFILL]

Le typeINTEGERpeut ˆetre compl´et´e par le mot-cl´eUNSIGNEDqui sp´ecifie si le stockage comprend un bit de signe ou non. Cette option (qui ne fait pas partie de la norme SQL) a un impact sur l’intervalle des

Références

Documents relatifs

Le poids démographique absolu et relatif remarquable des populations antillaises dans les métropoles floridiennes et à New York en fait des lieux d’un intérêt particulier

L’importance des situations de coordination dans l’émergence de pratiques d’enseignement interdisciplinaires a déterminé le choix du cadre théorique que nous avons retenu

être pour un groupe qu’il a repéré comme étant un groupe / on va dire / entre guillemets de bons élèves une proposition de / pistes de démonstration du théorème et

51 لكشلا( 27 ) ايديمون يف ةيراخفلا يباوخلا نم طمن 1 يزئانجلا راخفلا :يناثلا بلطملا : نامسق ىلإ مسقنيو 1 يمزقلا راخفلا ــــ :

Cet art des surfaces, expérimenté par Pesce sur les façades de cette Tour, et également dans d’autres projets architecturaux, tels que son projet pour une Banque de 1988,

Cela nous montre déjà qu’il ne s’agit pas d’étude des questions en jouant sur deux ‘registres’ ou plutôt en ‘changeant de cadre’, mais qu’il s’agit

Dans les entreprises de 10 salariés ou plus de l’ensemble de l’économie hors agriculture et hors emplois publics, 84,1 % des salariés travaillent à temps complet à la fin du

From this work, the deduced amount of spin alignment in incomplete fusion reaction and the advantage obtained by using the radioactive ion beam in study of the nuclear struc-