Installation et configuration de MySQL 5.0Date de publication : 19/01/2006
Par
Maximilian (Autres articles) Ce tutoriel vous explique pas à pas comment installer un serveur de bases de données MySQL 5 sous Windows et Linux, et comment effectuer les paramétrages post-installation de base. Introduction 1. Choix préalables 1.1 Licence 1.2 Version 1.3 Distribution 2. Procédure d'installation 2.1 Windows 2.2 Linux 3. Configuration 3.1 Options, variables et fichiers de configuration 3.2 Réglages de sécurité 3.3 Mode SQL 3.4 Paramétrer InnoDB Conclusion Introduction
Les concepteurs de MySQL ont l'habitude d'affirmer que ce SGBD peut être installé et configuré en une dizaine de minutes seulement. Même si ce chiffre est à prendre avec précaution, il est vrai que son déploiement reste simple par rapport aux ténors du marché et qu'il ne requiert pas de talents d'administrateur extraordinaires. Voyons comment effectuer l'opération dans la pratique. 1. Choix préalables1.1 Licence
C'est à l'évidence la gratuité et la liberté d'utilisation qui font pencher la balance en faveur de MySQL dans de nombreux cas. Pourtant, il ne faut pas perdre de vue que ce SGBD se décline en deux produits distincts qui, tout en ayant la même base, sont assortis de leurs licences respectives :
1.2 Version
Pour une nouvelle installation, je ne saurais trop vous conseiller d'opter pour la dernière version stable (5.0.15 à l'heure où cet article est écrit). La légère augmentation en termes d'encombrement et de consommation de ressources par rapport aux moutures précédentes est largement compensée par une robustesse accrue et des nouvelles fonctionnalités importantes.
En ce qui nous concerne, nous utiliserons donc MySQL 5.0 au long des lignes qui suivent. Néanmoins les indications données sont également valables pour la version 4.1 dont la procédure d'installation est assez similaire.
Au cas où pour des raisons de compatibilité avec l'existant vous seriez forcé d'installer une version inférieure à la 4.1, reportez-vous au tutoriel d'installation de Florian.
1.3 Distribution
MySQL est téléchargeable en version binaire ou source, cette dernière étant réservée à ceux qui veulent jouer les mécaniciens avec le moteur du SGBD ou simplement compiler eux-mêmes le serveur en fonction de leur environnement et de leurs besoins. Comme vous pouvez le voir sur la page downloads de mysql.com, il existe plusieurs distributions binaires compilées avec différentes options et incluant plus ou moins d'éléments annexes.
Sous Linux :
Sous Windows :
2. Procédure d'installation2.1 Windows
Une fois votre choix fait (pour nous, Windows Essentials) et le package téléchargé ici, exécutez l'installeur.
![]() ![]()
1. - 2. On retrouve tout d'abord les trois modes classiques dans ce genre d'installation : typique, complet et personnalisé. Choisissons personnalisé pour voir les différents composants qu'il est possible de sélectionner.
![]()
3. On constate que les éléments sont sensiblement les mêmes d'un mode à l'autre, hormis les bibliothèques C qui ne sont pas installées par défaut.
![]()
4. Cliquez sur Install pour lancer le déploiement.
![]()
5. Une fois cette étape terminée, vous pouvez enregistrer votre installation de MySQL. Pour ce faire, vous avez la possibilité de créer un compte sur le site mysql.com ou d'utiliser un compte existant.
![]()
6. L'installeur a fini son travail et vous demande si vous souhaitez lancer l'assistant de configuration du serveur. Ce wizard vous permet de préparer le terrain en personnalisant votre serveur à travers une série d'écrans, même si pour une configuration plus fine vous serez amené à modifier les paramètres manuellement par la suite. Les petits curieux pourront examiner les réglages effectués par l'assistant en consultant le modèle my-template.ini situé dans le répertoire d'installation de MySQL.
Laissez la case cochée et cliquez sur Finish.
![]() ![]()
7. - 8. Vous avez maintenant le choix entre une configuration détaillée et une configuration standard. Nous choisirons la détaillée, qui intercale une dizaine d'étapes de paramétrage en plus de celles de base.
![]()
9. Type de serveur. Cet écran détermine l'ordre de grandeur de la RAM qui sera allouée aux différents caches mémoire de MySQL selon que la machine est un poste de développement/test, un serveur multi-usages ou un serveur dédié. L'assistant affinera par la suite la taille de ces caches en fonction du nombre d'accès concurrents que vous préciserez.
![]()
10. Utilisation de la base de données. Il s'agit ici de paramétrer le support des transactions avec le moteur de stockage InnoDB. De base, InnoDB est activé mais on peut en faire le moteur principal par défaut en choisissant l'option "Transactional Database Only". Le troisième choix désactive InnoDB, ce qui économise quelques ressources (paramètre skip-innodb qui peut être retiré plus tard du fichier de configuration).
![]()
11. Si vous avez opté pour un des deux premiers choix dans l'écran précédent, vous devez configurer l'emplacement où sont stockés les fichiers de données (tablespaces) InnoDB.
![]()
12. Accès concurrents. Pour un serveur peu sollicité (20 connexions simultanées), choisissez la première option. La deuxième convient à une charge plus conséquente avec plusieurs centaines de connexions. Vous pouvez aussi paramétrer manuellement le nombre approximatif d'utilisateurs connectés simultanément. Concrètement, cet écran influe sur des variables serveur comme max_connections (100 pour la première option, 800 pour la deuxième sur un serveur dédié par exemple), thread_cache_size, key_buffer_size, query_cache_size (cache de requêtes activé seulement si on opte pour le deuxième ou troisième choix de l'écran), innodb_buffer_pool_size...
![]()
13. L'étape suivante permet de spécifier si on autorise les connexions TCP/IP extérieures et sur quel port, ainsi que le mode SQL choisi (voir le point 3.3).
![]()
14. Configuration du jeu de caractères par défaut (variable default-character-set). Si votre base doit contenir des données dans de multiples langues et alphabets, le charset UTF-8 (deuxième choix) est conseillé. Sinon laissez l'option sélectionnée par défaut, Latin1 étant adapté au français.
![]()
15. Options relatives à l'environnement Windows. Vous avez maintenant la possibilité d'enregistrer MySQL comme service Windows (attention, il peut y avoir conflit avec un service MySQL déjà existant). La deuxième option est bien pratique si vous vous servez du client mysql en ligne de commande, puisqu'elle permet d'enregistrer son chemin dans la variable PATH afin de pouvoir le lancer directement depuis l'invite MS-DOS sans avoir à se placer dans le répertoire d'installation de MySQL. ![]()
16. Il est fortement conseillé dans cet écran de modifier le mot de passe du compte root (administrateur ayant tous les privilèges sur les bases) qui est vide par défaut.
En revanche il est rarement utile de permettre à des utilisateurs de se connecter anonymement au serveur, je vous conseille donc de laisser la deuxième case décochée. ![]()
17. L'assistant tente d'écrire le fichier de configuration, de démarrer le service MySQL et enfin d'appliquer les paramètres de sécurité (changement du password root et création éventuelle d'un compte anonyme). Notez que les deux dernières étapes ont des chances d'échouer, notamment s'il y a un conflit avec une installation MySQL précédente, ou un firewall qui bloque l'accès au serveur sur le port spécifié. Le cas échéant, faites les modifications nécessaires puis relancez l'assistant MySQL Instance Config Wizard (via les Programmes du menu Démarrer).
Le déploiement est maintenant terminé. Pour lancer le serveur, vous avez diverses possibilités :
2.2 Linux
La section downloads de mysql.com propose les binaires suivants :
Les amateurs de distributions avec un système de gestion de paquetages non-RPM opteront pour cette dernière solution ou trouveront un package au format adéquat sur leur repository préféré.
Nous nous intéresserons au déploiement du RPM générique disponible sur http://dev.mysql.com/downloads/mysql/5.0.html ("Linux x86 generic RPM downloads"), sur une distribution Fedora Core 4.
Après avoir téléchargé les packages Server et Clients, connectez-vous en super-utilisateur et installez-les :
La procédure d'installation effectue un certain nombre d'opérations :
Il n'existe pas pour l'instant d'assistant de configuration de MySQL sous Linux, vous devez donc tout paramétrer manuellement (ce qui est de toute façon recommandé pour un serveur de production).
Pour démarrer/arrêter le serveur MySQL, un simple /etc/init.d/mysql start | stop suffit. Par défaut, il est exécuté avec l'option --user=mysql ce qui est un gage de sécurité puisque l'utilisateur Linux mysql a des droits limités. Vous pouvez également utiliser directement mysqlmanager ou le démon mysqld_safe / mysqladmin shutdown ainsi que l'outil graphique MySQL Administrator pour lancer et stopper le serveur. 3. Configuration3.1 Options, variables et fichiers de configuration
Nous ne décrirons pas ici les nombreux paramètres système et options qu'il est possible d'appliquer au serveur. Les points 3.2, 3.3 et 3.4 en présentent quelques exemples et vous pouvez à tout moment accéder à leur liste et leur valeur courante avec la commande sql SHOW VARIABLES.
En revanche, penchons-nous sur les différents moyens de mettre en oeuvre ces paramètres.
Le fichier de configuration a la forme suivante :
La rubrique [mysqld] (ou [server]) contient les variables et options destinées au serveur. On place dans [client] les éléments communs à tous les exécutables et utilitaires clients MySQL, mais il est aussi possible de paramétrer un programme client (mysql, mysqldump, etc.) de manière individuelle en spécifiant son nom entre crochets.
Pour avoir une idée des différents paramétrages possibles, inspirez-vous des fichiers d'exemples my-small, my-medium, my-large et my-huge.cnf/.ini que vous trouverez dans le répertoire d'installation de MySQL.
3.2 Réglages de sécurité
La première chose à faire (si vous ne l'avez pas déjà effectué à travers l'utilitaire de configuration sous Windows) est de donner un mot de passe à l'utilisateur root :
Certains poussent la vigilance jusqu'à changer le nom du user root par un autre moins "détectable" :
Sauf si vous n'avez pas coché la case correspondante dans l'assistant d'installation sous Windows, deux users anonymes sont également présents par défaut. Sous Linux, ils correspondent à la même personne autorisée à se connecter en local (localhost et localhost.localdomain). Sous Windows, l'un est un utilisateur local ayant tous les droits et l'autre un utilisateur distant avec des privilèges sur la base test. Vous pouvez aisément les supprimer :
Il peut également s'avérer judicieux de bloquer les connexions venant de l'extérieur (en particulier si les applications amenées à se connecter à MySQL s'exécutent uniquement en local sur la même machine). Pour ce faire, rajoutez à votre fichier de configuration dans la section [mysqld] le paramètre skip-networking.
Puis sous Windows, ajoutez dans la même section enable-named-pipes pour activer les canaux nommés qui sont une alternative aux connexions TCP/IP. Sous Linux, placez le paramètre socket=/tmp/mysql.sock (ou un autre socket) à la fois sous [mysqld] et [client] dans le fichier de configuration. L'utilisateur exécutant le serveur MySQL doit avoir les droits nécessaires pour créer le fichier /tmp/mysql.sock.
Vous avez aussi la possibilité de laisser les connexions TCP/IP activées tout en forçant le serveur à écouter seulement en local (paramètre bind-address 127.0.0.1), ce qui a grosso modo le même effet.
3.3 Mode SQL
Le mode SQL est un paramétrage permettant de régler le degré de tolérance du serveur MySQL envers la syntaxe et les valeurs qui lui sont envoyées. Vous pouvez l'afficher avec la commande SELECT @@SQL_MODE, et le modifier au démarrage du serveur (--sql-mode= " modes "), dans le fichier de configuration (sql_mode= " modes ") ou à la volée (SET GLOBAL sql_mode= " modes ").
" modes " correspond à une série de paramètres séparés par des virgules. Voici quelques-uns des plus importants :
Par ailleurs il existe des alias qui résument un ensemble de modes dans un but de compatibilité avec une norme ou un autre système de gestion de bases de données : ANSI, ORACLE, POSTGRESQL, TRADITIONAL, etc. Ils s'utilisent comme des modes normaux en termes de syntaxe.
Vous trouverez une description précise de tous les modes SQL dans le manuel MySQL.
3.4 Paramétrer InnoDB
Contrairement au moteur de stockage classique MyISAM, le fonctionnement du moteur transactionnel InnoDB nécessite quelques explications et éventuellement un paramétrage.
Si l'option skip_innodb n'est pas activée, le moteur InnoDB devrait être disponible. Pour vous en assurer, exécutez la commande suivante :
Alors que pour les tables MyISAM les index et les données sont dans deux fichiers séparés (nom_table.myi et nom_table.myd), avec InnoDB tout est rassemblé dans un seul fichier appelé tablespace. Par défaut, il s'agit de ibdata1 dans le répertoire de données de MySQL ou dans C:\MySQL Datafiles si vous avez utilisé l'assistant de configuration Windows. Le répertoire où se trouve le ou les fichiers tablespace peut être spécifié grâce à l'option innodb_data_home_dir. Si on ne précise rien, le fichier ibdata1 fait 10 Mo à l'origine et s'étend de façon automatique lorsque les données dépassent cette taille.
Mais on peut également paramétrer de façon entièrement manuelle les fichiers tablespace en plaçant dans le fichier de configuration de MySQL une variable innodb_data_file_path formatée comme suit :
Par exemple, pour spécifier qu'on veut dans le répertoire /usr/innodb/data deux fichiers de données nommés ibdata1 et ibdata2, le premier d'une longueur fixe de 50 Mo et le second de 100 Mo auto-extensible, on mettra dans my.cnf :
Ceci a un gros inconvénient en termes de taille. En effet, les fichiers tablespace prennent tout l'espace disque qui leur est alloué sans se limiter à la taille des données qu'ils contiennent réellement. Par conséquent, ce n'est pas parce que vous supprimez des données des tables InnoDB que l'espace disque occupé va se réduire.
Pour plus de commodité, il est possible de modifier le comportement du moteur en précisant qu'on veut un fichier tablespace par table. Il faut utiliser pour cela le paramètre innodb_file_per_table. Les données et index des tables InnoDB créées à partir du prochain redémarrage du serveur seront alors placés soit dans leur propre fichier au sein du répertoire data/nom_base, soit au même endroit que les données MyISAM. Ainsi, supprimer une table aura pour conséquence d'effacer le fichier correspondant ce qui libèrera autant d'espace ; de plus on pourra déplacer ou sauvegarder chaque table individuellement.
InnoDB utilise également des fichiers logs afin de tenir un journal des transactions. Par défaut, le moteur fonctionne alternativement avec 2 logs nommés ib_logfile0 et ib_logfile1 dans le répertoire data.
Ce répertoire peut être paramétré avec la variable innodb_log_group_home_dir et le nombre de fichiers dépend de l'option innodb_log_files_in_group. Il est recommandé de dimensionner les fichiers logs (innodb_log_file_size) à une valeur élevée, idéalement 25 à 100 % de la taille de la mémoire tampon InnoDB (innodb_buffer_pool_size). Par ailleurs, il peut être intéressant en termes de performances de placer les fichiers journaux sur un disque différent de celui où se trouvent les données. Voici l'exemple de fichier de configuration décrit précédemment auquel on a rajouté des paramètres concernant les logs :
Enfin, si vous n'avez pas ou plus besoin du moteur InnoDB, vous pouvez toujours le couper avec l'option skip-innodb.
Pour plus de précisions, je vous renvoie au tutoriel d'Olivier Miossec sur InnoDB.
Conclusion
Votre serveur est maintenant fin prêt.
Il ne reste plus qu'à vous y connecter avec le client mysql en ligne de commande (mysql -u root -p depuis l'invite MS-DOS ou une console Linux) ou en installant un des nombreux clients graphiques disponibles pour MySQL.
|
Copyright © Maximilian. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.