Go to the first, previous, next, last section, table of contents.


2 Installation de MySQL

Ce chapitre décrit comment obtenir et installer MySQL :

2.1 Installation standard rapide de MySQL

2.1.1 Installer MySQL sous Linux

Il est recommandé d'installer MySQL sous Linux en utilisant un fichier RPM. Les RPM de MySQL sont actuellement compilé sur une RedHAt en version 6.2, mais devraient fonctionner sur toute autre version de Linux qui supporte rpm et utilise glibc.

Si vous avez des problèmes avec un fichier RPM, si vous obtenez par exemple l'erreur ``Sorry, the host 'xxxx' could not be looked up'', référez vous à section 2.6.1.1 Notes relatives à Linux pour les distributions binaires.

Les fichiers RPM dont vous pourriez avoir besoin sont :

Pour voir tous les fichiers présents dans un paquet RPM, lancez :

shell> rpm -qpl MySQL-VERSION.i386.rpm

Pour effectuer une installation standard minimale, lancez :

shell> rpm -i MySQL-VERSION.i386.rpm MySQL-client-VERSION.i386.rpm

Pour installer uniquement le paquet du client MySQL, lancez :

shell> rpm -i MySQL-client-VERSION.i386.rpm

Le fichier RPM place les données dans `/var/lib/mysql'. Le RPM crée aussi les entrées appropriées dans `/etc/rc.d/' pour lancer le serveur automatiquement au démarrage. (Cela signifie que, si vous avez déjà effectué une installation auparavant, vous pouvez avoir besoin de faire une sauvegarde de vos fichiers de démarrage précédents si vous les changez, de façon à ne pas les perdre.)

Après l'installation des fichiers RPM, le démon mysqld devrait fonctionner et vous devriez être capables de commencer à utiliser MySQL. See section 2.4 Configuration après l'installation, et tests.

Si quelque chose se passe mal, vous pouvez trouver davantage d'informations dans le chapitre d'installation des binaires. See section 2.2.11 Installer MySQL à partir d'une distribution binaire.

2.1.2 Installer MySQL sous Windows

Le serveur MySQL pour Windows est disponible sous deux formes :

  1. La forme binaire contient un programme de configuration qui installe tout ce dont vous avez besoin de telle façon que vous puissiez démarrer le serveur immédiatement.
  2. La distribution sous forme de code source contient tout le code et les fichiers de support nécessaires à la compilation des exécutables en utilisant le compilateur VC++ 6.0. See section 2.3.7 La distribution source Windows.

En règle générale, vous devriez utiliser la distribution binaire.

Vous aurez besoin des choses suivantes :

2.1.2.1 Installation des binaires

  1. Si vous travaillez avec les serveurs NT/2000/XP, loguez-vous en utilisateur avec les permissions d'administrateur.
  2. Si vous faites une mise à jour d'une version plus récente de MySQL, il est nécessaire d'arrêter le serveur. Si vous utilisez le serveur en tant que service, utilisez :
    C:\> NET STOP MySQL
    
    Dans les autres cas, utilisez :
    C:\mysql\bin> mysqladmin -u root shutdown
    
  3. Avec les serveurs NT/2000/XP, si vous voulez changer l'exécutable du serveur (e.g., -max or -nt), il est aussi nécessaire de stopper le service :
    C:\mysql\bin> mysqld-max-nt --remove
    
  4. Dézipper les fichiers dans un emplacement temporaire.
  5. Exécutez le fichier `setup.exe' pour commencer l'installation. Si vous voulez l'installer à un autre emplacement que celui pas défaut `c:\mysql', utilisez le bouton Parcourir pour spécifier un emplacement.
  6. Terminer le processus d'installation.

2.1.2.2 Préparation de l'environnement MySQL de Windows

A partir de la version 3.23.38 de MySQL, la distribution Windows inclut le binaire du serveur normal et le binaire du serveur MySQL-Max. Voici une liste des différents serveurs MySQL que vous pouvez utiliser :

Binaire Description
mysqld Compilé avec débogage total et vérification automatique de l'allocation de mémoire, liens symboliques, tables InnoDB et BDB.
mysqld-opt Binaire optimisé sans le support des tables transactionnelles.
mysqld-nt Binaire optimisé pour NT/2000/XP sans support des tunnels nommés. Vous pouvez faire fonctionner cette version sur Windows 9x/Me, mais dans ce cas, les tunnels nommés ne sont pas crées et vous devez avoir TCP/IP installé.
mysqld-max Binaire optimisé avec support des liens symboliques et des tables InnoDB et BDB.
mysqld-max-nt Comme mysqld-max, mais compilé avec le support des tunnels nommés.

A partir de la version 3.23.50, les tunnels nommés ne sont activés que si on démarre mysqld avec --enable-named-pipe.

Tous les binaires précédents sont optimisés pour le processeur Pentium Pro mais devraient fonctionner avec n'importe quel processeur Intel >= i386.

Vous devrez utiliser un fichiers d'options pour spécifier votre configuration MySQL dans les circonstances suivantes :

Normalement, vous pouvez utiliser l'outil WinMySQLAdmin pour éditer le fichier d'options my.ini. Dans ce cas, vous n'avez pas à vous soucier de ce qui suit.

Il y a deux fichiers d'options avec la même fonction : `my.cnf' et `my.ini'. Toutefois, pour éviter la confusion, il est préférable de n'en utiliser qu'un seul. Les deux fichiers sont en texte plein. Le fichier `my.cnf', si utilisé, doit être crée dans le répertoire racine du lecteur C. Le fichier `my.ini', si utilisé, doit être crée dans le répertoire système de Windows. (Ce répertoire est souvent nommé `C:\WINDOWS' ou `C:\WINNT'. Vous pouvez déterminer sa valeur exacte en regardant la valeur de la variable d'environnement windir.) MySQL regarde en premier le fichier my.ini, puis le fichier `my.cnf'.

Si votre PC utilise un système de boot ou le lecteur C n'est pas le lecteur de boot, votre seule option est d'utiliser le fichier `my.ini'. Notez aussi que si vous utilisez l'outil WinMySQLAdmin, celui-ci n'utilisera que le fichier `my.ini'. Le répertoire `\mysql\bin' contient un fichier d'aide avec les instruction pour utiliser cet outil.

En utilisant notepad.exe, créez le fichier d'options et éditez la section [mysqld] pour spécifier les valeurs des paramètres basedir et datadir :

[mysqld]
# set basedir to installation path, e.g., c:/mysql
basedir=le_dossier_d'installation
# set datadir to location of data directory,
# e.g., c:/mysql/data or d:/mydata/data
datadir=le_dossier_des_données

Notez que les chemins de Windows doivent être spécifiés dans les fichiers d'options en utilisant des slashes normaux (/) au lieu des backslashes (\). Si vous utilisez des backslashes, vous devez les doubler.

Si vous voulez utiliser un répertoires de données autre que `c:\mysql\data', vous devez copier le contenu entier du dossier `c:\mysql\data' au nouvel endroit.

Si vous voulez utiliser les tables transactionnelles InnoDB, vous aurez besoin de créer manuellement deux nouveaux répertoires pour contenir les les données et les logs InnoDB, `c:\ibdata' et `c:\iblogs'. Vous aurez aussi besoin d'ajouter quelques lignes supplémentaires dans le fichier d'options. See section 7.5.2 Options de démarrage InnoDB.

Si vous ne voulez pas utiliser les tables InnoDB, ajoutez l'option skip-innodb au fichier d'options.

Maintenant, vous pouvez commencer à tester le démarrage du serveur.

2.1.2.3 Démarrer le serveur pour la première fois

Tester à partir d'une console DOS est la meilleure chose à faire car le serveur affiche des messages qui y apparaissent. Si quelque chose n'est pas bon dans votre configuration, ces messages vous aiderons à identifier et corriger le problème.

Assurez-vous d'être dans le répertoire où se situe le serveur, puis entrez cette commande :

C:\mysql\bin> mysqld-max --standalone

Vous devriez voir ce qui suit pendant le démarrage du serveur :

InnoDB: The first specified datafile c:\ibdata\ibdata1 did not exist:
InnoDB: a new database to be created!
InnoDB: Setting file c:\ibdata\ibdata1 size to 209715200
InnoDB: Database physically writes the file full: wait...
InnoDB: Log file c:\iblogs\ib_logfile0 did not exist: new to be created
InnoDB: Setting log file c:\iblogs\ib_logfile0 size to 31457280
InnoDB: Log file c:\iblogs\ib_logfile1 did not exist: new to be created
InnoDB: Setting log file c:\iblogs\ib_logfile1 size to 31457280
InnoDB: Log file c:\iblogs\ib_logfile2 did not exist: new to be created
InnoDB: Setting log file c:\iblogs\ib_logfile2 size to 31457280
InnoDB: Doublewrite buffer not found: creating new
InnoDB: Doublewrite buffer created
InnoDB: creating foreign key constraint system tables
InnoDB: foreign key constraint system tables created
011024 10:58:25  InnoDB: Started

Pour plus d'informations à propos du démarrage de MySQL sous Windows, voyez section 2.6.2 Notes relatives à Windows.

2.1.3 Installer MySQL sur Mac OS X

Depuis MySQL 4.0.11, vous pouvez installer MySQL sur Mac OS X 10.2 ("Jaguar") avec le package binaire Mac OS X PKG au lieu d'utiliser la distribution binaire compressée. Notez que les anciennes versions de Mac OS X (i.e. 10.1.x) ne sont pas supportées par ce package.

Le package est situé dans une image disque (.dmg), que vous devez monter en double-cliquant son icône sur le Finder. Le disque devrait alors se monter, et afficher son contenu.

NOTE: Avant de lancer l'installation, assurez vous qu'il n'y a pas de serveur MySQL en fonctionnement!

Arrêtez tous les serveurs MySQL avant de continuer, soit en utilisant l'application manager (pour les serveurs Mac OS X) ou via mysqladmin shutdown en ligne de commande.

Pour installer le package MySQL, double-cliquez sur l'icône. Cela va lancer l'installeur de package MacOSX, qui vous guidera durant l'installation.

Le package Mac OS X de MySQL va s'installer lui-même dans le dossier `/usr/local/mysql-<version>' et va aussi installer un lien symbolique `/usr/local/mysql', pointant sur la nouvelle installation. Si un dossier appelé `/usr/local/mysql' existe déjà, il sera renommé en `/usr/local/mysql.bak'. De plus, il va installer les tables de droits MySQL en exécutant le script mysql_install_db après l'installation.

Le schéma d'installation est semblable à celui de la distribution binaire, tous les programmes MySQL sont situés dans le dossier `/usr/local/mysql/bin'. Les sockets MySQL sont installées dans le fichier `/etc/mysql.sock' par défaut. See section 2.2.7 Dispositions d'installation.

L'installation requiert un compte nommé mysql (qui existe par défaut en Mac OS X 10.2 et plus récent).

Si vous utilisez Mac OS X Server, vous devez avoir déjà une version de MySQL installée :

Cette section du manuel couvre l'installation du package binaire MySQL pour Mac OS X uniquement. Assurez vous de bien lire l'aide d'Apple concernant l'installation de MySQL (Lancer le visualiseur d'aid, sélectionnez la rubrique "Serveur Mac OS X", et faites une recherche sur "MySQL", puis lisez l'entrée appelée "Installing MySQL").

Notez bien que la version pré-installée de MySQL sur Mac OS X Server peut être lancée avec la commande safe_mysqld au lieu de mysqld_safe!

Si vous avez utilisé auparavant les packages MySQL de Marc Liyanage pour Mac OS X, depuis le site de http://www.entropy.ch, vous pouvez simplement suivre le process de mise à jour, en utilisant les conseils de ses pages.

Si vous faites une mise à jour depuis les versions de Marc, ou depuis une ancienne version de MySQL pour Mac OS X Server, avec le nouveau package officiel, vous devrez convertir les tables de droits. See section 2.5.3 Passer de la version 3.23 à la version 4.0.

Après cette installation, vous opuvez lancer le serveur MySQL avec ces commandes, exécutées dans terminal. Notez bien que vous devez avoir des droits d'administrateur pour cela!

shell> cd /usr/local/mysql
shell> sudo ./bin/mysqld_safe
(Enter your password)
(Press CTRL+Z)
shell> bg
(Press CTRL+D to exit the shell)

Vous devez alors être capable de vous connecter au serveur MySQL, notamment en exécutant la commande `/usr/local/mysql/bin/mysql'.

Pour activer automatiquement le démarrage de MySQL au lancement du serveur, vous pouvez télécharger l'utilitaire de démarrage de Marc Liyanage sur sont site :

http://www2.entropy.ch/download/mysql-startupitem.pkg.tar.gz

Nous avons prévu d'ajouter une application de démarrage à la distribution officielle prochainement.

Notez que l'installation d'un nouveau package MySQL ne supprimer pas le dossier d'une vieille installation : l'installeur de Mac OS X n'offre pas encore les fonctionnaltés nécessaires pour mettre à jour proprement une vieille version. Après avoir copié les fichiers de bases depuis votre ancien dossier vers le nouveau, et que vous avez réussi à redémarrer MySAL avec la nouvelle version, vous devriez pensez à supprimer les vieilles versions des fichiers, situées dans `/Library/Receipts/mysql-<version>.pkg'.

2.1.4 Installer MySQL sur NetWare

Depuis la version 4.0.11, le serveur MySQL est disponible sur Novell NetWare, en format binaire. Pour pouvoir héberger un serveur MySQL, un serveur NetWare doit avoir les pré-requis suivants :

Les exécutables binaires pour NetWare sont disponibles sur http://www.mysql.com/downloads/.

2.1.4.1 Installer les exécutables MySQL pour NetWare

  1. Si vous faites une mise à jour depuis une installation antérieure, arrêtez le serveur MySQL. Pour cela, faites :
    SERVER:  mysql -u root shutdown
    
  2. Connectez vous sur le serveur cible depuis une machine cliente, pour accéder au dossier où installer MySQL.
  3. Décompressez le fichier zip binaire sur le serveur. Assurez vous d'utiliser les chemins du fichiers zip. Il n'y a pas de problème à installer le fichier dans `SYS:\'. Si vous faites une mise à jour depuis une ancienne installation, vous devez copier les données (c'est à dire `SYS:MYSQL\DATA'), de même que le fichier `my.cnf', si vous l'avez personnalisé. Vous pouvez alors effacer l'ancienne copie de MySQL.
  4. Vous pouvez renommer le dossier avec un autre nom plus cohérent et facile à retenir. Nous vous recomandons d'utiliser `SYS:MYSQL'; les exemples suivants utiliserons ce nom pour se référner au dossier d'installation en général.
  5. Dans la console du serveur, ajoutez un chemin de recherche pour le dossier contenant les NLM de MySQL. Par exemple :
    SERVER:  SEARCH ADD SYS:MYSQL\BIN
    
  6. Installez la base initiale, si nécessaire, en utilisant le script mysql_install_db en ligne de commande.
  7. Démarrez le serveur MySQL en utilisant le script mysqld_safe dans la console.
  8. Pour finir l'installation, vous devriez aussi ajouter les commandes ci-dessus au fichier autoexec.ncf. Par exemple, si votre installation MySQL est dans le dossier `SYS:MYSQL', et que vous voulez que MySQL démarre automatiquement, vous pouvez utiliser ces lignes :
    #Démarre le serveur MySQL 4.0.x
    SEARCH ADD SYS:MYSQL\BIN
    MYSQLD_SAFE
    

Si il y avait une installation MySQL pré-éxistante, assurez vous de bien vérifier les commandes de démarrages dans autoexec.ncf, et de les adapter si nécessaire.

2.2 Notes générales à propos de l'installation

2.2.1 Comment obtenir MySQL ?

Visitez le site de MySQL (http://www.mysql.com/) pour des informations à propos de la version courante et les instructions de téléchargement.

Notre miroir principal est situé sur http://mirrors.sunsite.dk/mysql/.

Pour une liste complète et à jour des miroirs web/téléchargement de MySQL, voyez http://www.mysql.com/downloads/mirrors.html. Vous trouverez là des informations à propos des futurs miroirs et de quoi nous informer de la non-validité de l'un d'entre eux.

2.2.2 Vérifier l'intégrité des paquets avec MD5 ou GnuPG

Une fois que vous avez téléchargé le paquet MySQL qui vous convient, et avant de l'installer, vous devriez vous assrurer qu'il est intact, et n'a pas été altéré.

MySQL AB propose deux moyens de vérifier l'intégrité : les sommes de contrôles MD5 et les signatures de GnuPG, de GNU Privacy Guard.

2.2.3 Verifying the MD5 Checksum

Une fois que vous avez téléchargé le paquet, vous devez vérifier si la somme de contrôle MD5 correspond à celle qui est disponibles sur le site de MySQL. Chaque package a une somme de contrôle individuelle, que vous pouez obtenir avec la commande suivante :

shell> md5sum <package>

Notez que tous les systèmes d'exploitation ne supportent pas la commande md5sum : sur certains, elle s'appelle simplement md5, sur d'autre, elle n'est pas du tout disponible. Sur Linux, ella fait partie des utilitaires textes GNU (GNU Text Utilities), qui sont disponbiles pour toute une gamme de plate-formes. Vous pouvez télécharger le code source sur le site http://www.gnu.org/software/textutils/. Si vous avez installé OpenSSL, vous pouvez utiliser la commande openssl md5 <package> à la place. Une implémentation DOS/Windows de la commande md5 est disponible sur le site http://www.fourmilab.ch/md5/.

Exemple :

shell> md5sum mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz
155836a7ed8c93aee6728a827a6aa153
                mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz

Ainsi, vous devez vérifier si la somme de contrôle résultante correspond à cette qui est imprimée sur la page de téléchargement, en dessous du paquet téléchargé.

La plupart des sites miroirs proposent aussi un fichier appelé `MD5SUMS', qui inclut les sommes de contrôle MD5 pour tous les fichiers disponibles dans le dossier `Downloads'. Notez bien qu'il est très facile de modifier ce fichier, et que ce n'est pas une méthode sécuritaire. Dans le doute, consultez différents mirroirs, et comparez les résultats.

2.2.4 Vérification de la signature avec GnuPG

Une méthode plus sûre pour vérifier l'intégrité d'un paquet est d'utiliser la signature. MySQL AB utilise GNU Privacy Guard (GnuPG), une alternative Open Source du très connu Pretty Good Privacy (PGP) par Phil Zimmermann. Voir http://www.gnupg.org/ et http://www.openpgp.org/ pour plus d'informations sur OpenPGP/GnuPG et comment obtenir et installer GnuPG sur votre système. La plupart des distributions Linux dispose d'une version de GnuPG installée par défaut.

Depuis MySQL 4.0.10 (Février 2003), MySQL AB signe les paquets en téléchargement avec GnuPG. Les signateurs chifféres représentent une méthode bien plus sûre pour vérifier l'intégrité et l'authenticitié d'un fichier.

Pour vérifier la signature d'un paquet spécifique, vous devez obtenir en premier lieu une copie de la clé publique GPG build@mysql.com. Vous pouvez soit la copier-coller directement depuis ce manuel, ou la réclamer sur le serveur http://www.keyserver.net/.

Key ID:
pub  1024D/5072E1F5 2003-02-03
     MySQL Package signing key (www.mysql.com) <build@mysql.com>
Fingerprint: A4A9 4068 76FC BD3C 4567  70C8 8C71 8D3B 5072 E1F5

Public Key (ASCII-armored):

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

mQGiBD4+owwRBAC14GIfUfCyEDSIePvEW3SAFUdJBtoQHH/nJKZyQT7h9bPlUWC3
RODjQReyCITRrdwyrKUGku2FmeVGwn2u2WmDMNABLnpprWPkBdCk96+OmSLN9brZ
fw2vOUgCmYv2hW0hyDHuvYlQA/BThQoADgj8AW6/0Lo7V1W9/8VuHP0gQwCgvzV3
BqOxRznNCRCRxAuAuVztHRcEAJooQK1+iSiunZMYD1WufeXfshc57S/+yeJkegNW
hxwR9pRWVArNYJdDRT+rf2RUe3vpquKNQU/hnEIUHJRQqYHo8gTxvxXNQc7fJYLV
K2HtkrPbP72vwsEKMYhhr0eKCbtLGfls9krjJ6sBgACyP/Vb7hiPwxh6rDZ7ITnE
kYpXBACmWpP8NJTkamEnPCia2ZoOHODANwpUkP43I7jsDmgtobZX9qnrAXw+uNDI
QJEXM6FSbi0LLtZciNlYsafwAPEOMDKpMqAK6IyisNtPvaLd8lH0bPAnWqcyefep
rv0sxxqUEMcM3o7wwgfN83POkDasDbs3pjwPhxvhz6//62zQJ7Q7TXlTUUwgUGFj
a2FnZSBzaWduaW5nIGtleSAod3d3Lm15c3FsLmNvbSkgPGJ1aWxkQG15c3FsLmNv
bT6IXQQTEQIAHQUCPj6jDAUJCWYBgAULBwoDBAMVAwIDFgIBAheAAAoJEIxxjTtQ
cuH1cY4AnilUwTXn8MatQOiG0a/bPxrvK/gCAJ4oinSNZRYTnblChwFaazt7PF3q
zIhMBBMRAgAMBQI+PqPRBYMJZgC7AAoJEElQ4SqycpHyJOEAn1mxHijft00bKXvu
cSo/pECUmppiAJ41M9MRVj5VcdH/KN/KjRtW6tHFPYhMBBMRAgAMBQI+QoIDBYMJ
YiKJAAoJELb1zU3GuiQ/lpEAoIhpp6BozKI8p6eaabzF5MlJH58pAKCu/ROofK8J
Eg2aLos+5zEYrB/LsrkCDQQ+PqMdEAgA7+GJfxbMdY4wslPnjH9rF4N2qfWsEN/l
xaZoJYc3a6M02WCnHl6ahT2/tBK2w1QI4YFteR47gCvtgb6O1JHffOo2HfLmRDRi
Rjd1DTCHqeyX7CHhcghj/dNRlW2Z0l5QFEcmV9U0Vhp3aFfWC4Ujfs3LU+hkAWzE
7zaD5cH9J7yv/6xuZVw411x0h4UqsTcWMu0iM1BzELqX1DY7LwoPEb/O9Rkbf4fm
Le11EzIaCa4PqARXQZc4dhSinMt6K3X4BrRsKTfozBu74F47D8Ilbf5vSYHbuE5p
/1oIDznkg/p8kW+3FxuWrycciqFTcNz215yyX39LXFnlLzKUb/F5GwADBQf+Lwqq
a8CGrRfsOAJxim63CHfty5mUc5rUSnTslGYEIOCR1BeQauyPZbPDsDD9MZ1ZaSaf
anFvwFG6Llx9xkU7tzq+vKLoWkm4u5xf3vn55VjnSd1aQ9eQnUcXiL4cnBGoTbOW
I39EcyzgslzBdC++MPjcQTcA7p6JUVsP6oAB3FQWg54tuUo0Ec8bsM8b3Ev42Lmu
QT5NdKHGwHsXTPtl0klk4bQk4OajHsiy1BMahpT27jWjJlMiJc+IWJ0mghkKHt92
6s/ymfdf5HkdQ1cyvsz5tryVI3Fx78XeSYfQvuuwqp2H139pXGEkg0n6KdUOetdZ
Whe70YGNPw1yjWJT1IhMBBgRAgAMBQI+PqMdBQkJZgGAAAoJEIxxjTtQcuH17p4A
n3r1QpVC9yhnW2cSAjq+kr72GX0eAJ4295kl6NxYEuFApmr1+0uUq/SlsQ==
=YJkx
-----END PGP PUBLIC KEY BLOCK-----

Vous pouvez importer cette clé dans votre trousseau de clé publiques GPG avec la commande gpg --import. Voyez la documnetation GPG pour plus de détails sur comment travailler avec les clés publiques.

Une fois que vous avez téléchargé et importé la clé publique, vous pouvez télécharger le paquet MySQL et la signature qui lui est associée, sur la même page. Le fichier de signature a pour extension `.asc'. Par exemple, la signature pour le fichier `mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz' serait `mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz.asc'. Assurez vous que les deux fichiers sont stockés dans le même dossier, puis exécutez la commande suivante pour vérifier la signature du fichier :

shell> gpg --verify <package>.asc

Example:

shell> gpg --verify mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz.asc
gpg: Warning: using insecure memory!
gpg: Signature made Mon 03 Feb 2003 08:50:39 PM MET using DSA key ID 5072E1F5
gpg: Good signature from
     "MySQL Package signing key (www.mysql.com) <build@mysql.com>"

La mention "Good signature" (bonne signature) indique que le paquet est correct.

Pour les paquets RPM, il n'y a pas de signature séparée : les paquets RPM disposent d'une signature GPG intégrée, et d'une somme de contrôle MD5. Vous pouvez les vérifier avec la commande suivante :

shell> rpm --checksig <package>.rpm

Example:

shell> rpm --checksig MySQL-server-4.0.10-0.i386.rpm
MySQL-server-4.0.10-0.i386.rpm: md5 gpg OK

Note : Si vous utilisez RPM 4.1 et qu'il se plaint que (GPG) NOT OK (MISSING KEYS: GPG#5072e1f5) (même si vous l'avez importé dans votre trousseau de clé), vous devez alors importer la clé dans votre trousseau RPM d'abord. RPM 4.1 n'utilise pas votre trousseau de clé GPG (ni GPG lui-même), car il entretient son propre trousseau de clé (car c'est une application de niveau système, et que le trousseau de clé est spécifique à chaque utilisateur). Pour importer la clé publique MySQL dans votre trousseau de clé RPM, utilisez la commande suivante :

shell> rpm --import <pubkey>

Example:

shell> rpm --import mysql_pubkey.asc

Dans le cas où vous vous apercevez que la somme de contrôle MD5 checksum ou la signature GPG ne correspond pas, essayez de télécharger à nouveau le même paquet, éventuellement depuis un autre miroir. Si vous échouez plusieurs fois à vérifier l'intégrité du paquet, faites nous part de votre problème, en incluant le nom complet du paquet désiré, et les sites de téléchargement que vous avez utilisé. Mailez nous à l'adresse webmaster@mysql.com ou build@mysql.com.

2.2.5 Systèmes d'exploitation supportés par MySQL

Nous utilisons GNU Autoconf, alors il est possible de porter MySQL sur tous les systèmes modernes qui utilisent les threads Posix et un compilateur C++. Pour compiler uniquement le client, un compilateur C++ est simplement nécessaire. Nous utilisons et développons le logiciel nous-même, en commençant par Sun Solaris (Versions 2.5 - 2.7) et SuSE Linux version 7.x.

Notez que pour de nombreux systèmes d'exploitation, le support natif des threads ne fonctionne qu'avec les dernières versions. MySQL a été compilé avec succès sur les combinaisons système d'exploitation/package de threads suivants :

Notez que toutes les plate-formes ne sont pas équipées de la même façon pour faire fonctionner MySQL. Les capacités d'une plateforme pour supporter de fortes charges avec MySQL est déterminé par ceci :

En se basant sur les critères précédents, les meilleures plate-forme pour MySQL sont x86 avec SuSE Linux 7.1, 2.4 kernel, et ReiserFS (ou toute autre distribution Linux similaire) et SPARC avec Solaris 2.7 ou 2.8. FreeBSD vient en troisième, mais nous espérons bien le voir rejoindre le groupe de tête, une fois que la librairie de threads sera améliorée. Nous espérons aussi être bientôt capables d'ajouter les autres plate-formes sur laquelle MySQL compile, et fonctionne correctement, mais pas toujours le bon niveau de stabilité et de performances. Cela réclame des efforts de notre part, en coopération avec les développeurs de ces plate-formes. Si vous êtes interessés par l'amélioration de ces composants, et que vous êtes en position pour influencer le développement, demandez des instructions détaillées à MySQL en envoyant un email à internals@lists.mysql.com.

Notez bien que la comparaison précédente ne signifie pas qu'un système d'exploitation est meilleur que l'autre, en général. Nous avons classé les systèmes en fonction de leur capacité à faire fonctionner un système MySQL, et nous nous limitons à cette comparaison. Avec cela en tête, le résultat de cette comparaison serait différent si nous y ajoutions d'autres problèmes. Et dans certains cas, la seule raison qui fait qu'un OS est meilleur que l'autre est parce que nous y avons consacré plus de temps, pour optimiser et tester. Nous nous bornons à exprimer notre point de vue pour vous aider à décider quelle plate forme choisir pour votre serveur MySQL.

2.2.6 Quelle version de MySQL utiliser ?

La première décision à prendre est de savoir si vous voulez utiliser la dernière version de développement ou la dernière version stable :

La seconde décision est de déterminer si vous devez utiliser une distribution source ou binaire. Dans la plupart des cas, vous devrez utiliser une distribution binaire, si celle-ci existe pour votre plate-forme, car elle s'installera certainement plus facilement qu'une distribution source.

Dans les cas suivants, vous devrez opter pour une installation à partir des sources :

La politique de nommage de MySQL utilise des numéros de version qui consiste en trois nombres suivis d'un suffixe. Par exemple, une version nommée mysql-3.21.17-beta doit être interprétée de la façon suivante :

Toutes les versions de MySQL passent par nos tests et bancs d'essais standards pour nous assurer qu'elles peuvent être utilisées sans danger. Les séries de tests s'améliorent en permanence car les tests standards sont étendus dans le temps pour traquer tous les bogues précédemment trouvées.

Notez bien que toutes les versions de MySQL ont été testées au moins avec :

Une batterie de tests internes
C'est une reproduction d'un système de production client. Il comporte de nombreuses tables avec des centaines de Mo de données.
Les bancs de tests MySQL
Ils effectuent une série de requêtes communes. C'est aussi un test pour savoir si le dernier processus d'optimisation rend le code plus rapide. See section 5.1.4 La suite de tests MySQL.
Le test crash-me
Il tente de déterminer de quelles fonctionnalités disposent les bases de données et quelles en sont les limites. See section 5.1.4 La suite de tests MySQL.

Un autre test provient du fait que nous avons la version la plus récente de MySQL dans notre propre environnement de production interne, sur au moins une machine. Nous avons plus de 100 Go de données à manipuler.

2.2.7 Dispositions d'installation

Cette section décrit les répertoires par défaut crées en installant les distributions binaires et les distributions de sources.

Une distribution binaire est installée en la décompressant dans le répertoire d'installation que vous avec choisis (souvent `/usr/local/mysql') et crée les répertoires suivants à cet endroit :

Répertoire Contenu du répertoire
`bin' Programmes clients et le serveur mysqld
`data' Fichiers de log et bases de données
`include' Fichiers (entêtes) inclus
`lib' Librairies
`scripts' mysql_install_db
`share/mysql' Fichiers de messages d'erreurs
`sql-bench' Benchmarks

Une distribution des sources est installée après que vous l'ayez configuré et compilé. Par défaut, l'installation se fait dans `/usr/local', dans les sous-répertoires suivants :

Répertoire Contenu du répertoire
`bin' Programmes clients et scripts
`include/mysql' Fichiers (entêtes) inclus
`info' Documentation au format Info
`lib/mysql' Librairies
`libexec' Le serveur mysqld
`share/mysql' Fichiers de messages d'erreurs
`sql-bench' Benchmarks et test crash-me
`var' Fichiers de log et bases de données

Dans le répertoire d'installation, les dispositions d'une installation des sources diffère d'une installation binaire des façons suivantes :

Vous pouvez créer votre propre installation binaire à partir d'une distribution de sources compilées en exécutant le script `scripts/make_binary_distribution'.

2.2.8 Quand et comment sont publiées les nouvelles versions

MySQL évolue rapidement ici, à MySQL AB, et nous voulons le partager avec les autres utilisateurs de MySQL. Nous essayons de faire une nouvelle version à chaque fois que nous avons implanté des fonctionnalités qui seront utiles à d'autres.

Nous essayons aussi d'aider les utilisateurs dont les requêtes sont faciles à programmer. Nous prenons en considération tout ce que nos clients nous demandent, et nous accordons une attention particulière à nos clients qui ont pris une licence e-mail étendue.

Personne n'est obligé de télécharger une nouvelle version. La sections News vous indiquera si la nouvelle version contient une fonctionnalité que vous attendez. See section C Historique des changements MySQL.

Nous utilisons la politique suivante, lors de la mise à jour de MySQL :

La version stable actuelle est la version 3.23; nous avons déjà commencé à développer activement la version 4.0. Les bogues seront corrigés dans cette version. Nous ne croyons pas à un gel complet, car cela laisserait en plan des corrections de bogues, et des listes de souhaites. ``Un peu gelé'' signifie que nous pourrions apporter de petits ajouts qui ``n'affecterons pas presque sûrement pas le fonctionnement''.

MySQL utilise un système de numérotation légèrement différent pour les autres produits. En général, il est relativement sûr d'utiliser une version qui a été publiée il y a quelques semaines sans être remplacée par une nouvelle version. See section 2.2.6 Quelle version de MySQL utiliser ?.

2.2.9 Politique de publication : aucun bug connu dans les versions

Nous mettons beaucoup d'efforts et de temps à la publication de version sans bugs. A notre connaissance, nous n'avons jamais publié une version de MySQL qui contienne un bug fatal connu et reproductible.

Un bug fatal est un problème qui crashe MySQL en utilisation normal, fournit des réponses erronnées à des requêtes classiques, ou a des problèmes de sécurité.

Nous documentons tous les problèmes ouverts, bugs et tout ce qui dépend des choix de conceptions. See section 1.8.5 Erreurs connues, et limitations de MySQL.

Nous avons pour but de corriger tout ce qui est corrigeable, sans risquer la stabilité des versions de MySQL. Dans certains cas, cela signifie que nous pouvons corriger une erreur dans la version de développement, mais pas dans la version stable. Naturellement, nous documentons ces problèmes, pour que les utilisateurs soient avertis.

Voici une description de notre processus de publication :

2.2.10 Binaires compilés par MySQL AB

Comme service, nous, MySQL AB, proposons un jeu de distributions binaires de MySQL qui sont compilés sur nos machines, ou les machines auxquelles nos clients nous ont gentiment donné accès.

Ces distributions sont générées avec le script scripts/make_binary_distribution et sont configurés avec les compilateurs et options suivantes :

Linux 2.4.xx i386 with gcc 2.95.3
CFLAGS="-O2 -mcpu=pentiumpro" CXX=gcc CXXFLAGS="-O2 -mcpu=pentiumpro -felide-constructors" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --disable-shared --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static
Linux 2.4.xx Intel Itanium 2 with ecc (Intel C++ Itanium Compiler 7.0)
CC=ecc CFLAGS="-O2 -tpp2 -ip -nolib_inline" CXX=ecc CXXFLAGS="-O2 -tpp2 -ip -nolib_inline" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile
Linux 2.4.xx Intel Itanium with ecc (Intel C++ Itanium Compiler 7.0)
CC=ecc CFLAGS=-tpp1 CXX=ecc CXXFLAGS=-tpp1 ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile
Linux 2.4.xx alpha with ccc (Compaq C V6.2-505 / Compaq C++ V6.3-006)
CC=ccc CFLAGS="-fast -arch generic" CXX=cxx CXXFLAGS="-fast -arch generic -noexceptions -nortti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-mysqld-ldflags=-non_shared --with-client-ldflags=-non_shared --disable-shared
Linux 2.2.xx sparc with egcs 1.1.2
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --disable-shared
Linux 2.4.xx s390 with gcc 2.95.3
CFLAGS="-O2" CXX=gcc CXXFLAGS="-O2 -felide-constructors" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static
Sun Solaris 2.8 sparc with gcc 3.2
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --with-named-z-libs=no --with-named-curses-libs=-lcurses --disable-shared
Sun Solaris 2.9 sparc with gcc 2.95.3
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --with-named-curses-libs=-lcurses --disable-shared
Sun Solaris 2.9 sparc with cc-5.0 (Sun Forte 5.0)
CC=cc-5.0 CXX=CC ASFLAGS="-xarch=v9" CFLAGS="-Xa -xstrconst -mt -D_FORTEC_ -xarch=v9" CXXFLAGS="-noex -mt -D_FORTEC_ -xarch=v9" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --with-named-z-libs=no --enable-thread-safe-client --disable-shared
IBM AIX 4.3.2 ppc with gcc 3.2.1
CFLAGS="-O2 -mcpu=powerpc -Wa,-many " CXX=gcc CXXFLAGS="-O2 -mcpu=powerpc -Wa,-many -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --disable-shared
IBM AIX 5.1.0 ppc with gcc 3.2.1
CFLAGS="-O2 -mcpu=powerpc -Wa,-many" CXX=gcc CXXFLAGS="-O2 -mcpu=powerpc -Wa,-many -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --with-server-suffix="-pro" --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --disable-shared --with-innodb
HP-UX 10.20 pa-risc1.1 with gcc 3.1
CFLAGS="-DHPUX -I/opt/dce/include -O3 -fPIC" CXX=gcc CXXFLAGS="-DHPUX -I/opt/dce /include -felide-constructors -fno-exceptions -fno-rtti -O3 -fPIC" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-pthread --with-named-thread-libs=-ldce --with-lib-ccflags=-fPIC --disable-shared
HP-UX 11.11 pa-risc2.0 with aCC (HP ANSI C++ B3910B A.03.33)
CC=cc CXX=aCC CFLAGS=+DD64 CXXFLAGS=+DD64 ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared
Apple Mac OS X 10.2 powerpc with gcc 3.1
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared
FreeBSD 4.7 i386 with gcc 2.95.4
CFLAGS=-DHAVE_BROKEN_REALPATH ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --with-named-z-libs=not-used --disable-shared

Les paquets binaires suivants sont compils sur des systmes que des tiers prtent gracieusement MySQL AB. Notez que ces paquets sont fournis gracieusement. Comme MySQL AB n'a pas le contrle complet sur ces systmes, nous ne pouvons proposer qu'un support limit sur ces systmes.

SCO Unix 3.2v5.0.6 i386 with gcc 2.95.3
CFLAGS="-O3 -mpentium" LDFLAGS=-static CXX=gcc CXXFLAGS="-O3 -mpentium -felide-constructors" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --enable-thread-safe-client --disable-shared
Caldera Open Unix 8.0.0 i386 with CC 3.2
CC=cc CFLAGS="-O" CXX=CC ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --enable-thread-safe-client --disable-shared
Compaq Tru64 OSF/1 V5.1 732 alpha with cc/cxx (Compaq C V6.3-029i / DIGITAL C++ V6.1-027)
CC="cc -pthread" CFLAGS="-O4 -ansi_alias -ansi_args -fast -inline speed -speculate all" CXX="cxx -pthread" CXXFLAGS="-O4 -ansi_alias -fast -inline speed -speculate all -noexceptions -nortti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-prefix=/usr/local/mysql --with-named-thread-libs="-lpthread -lmach -lexc -lc" --disable-shared --with-mysqld-ldflags=-all-static
SGI Irix 6.5 IP32 with gcc 3.0.1
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared

Les options suivantes de compilations ont t utilises pour les paquets binaires de MySQL, qui taient fournis auparavant. Ces paquets ne sont plus mis jours, mais les options de compilation sont conserves ici pour mmoire.

Linux 2.2.x with x686 with gcc 2.95.2
CFLAGS="-O3 -mpentiumpro" CXX=gcc CXXFLAGS="-O3 -mpentiumpro -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --enable-assembler --with-mysqld-ldflags=-all-static --disable-shared --with-extra-charsets=complex
SunOS 4.1.4 2 sun4c with gcc 2.7.2.1
CC=gcc CXX=gcc CXXFLAGS="-O3 -felide-constructors" ./configure --prefix=/usr/local/mysql --disable-shared --with-extra-charsets=complex --enable-assembler
SunOS 5.5.1 (and above) sun4u with egcs 1.0.3a or 2.90.27 or gcc 2.95.2 and newer
CC=gcc CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-low-memory --with-extra-charsets=complex --enable-assembler
SunOS 5.6 i86pc with gcc 2.8.1
CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql --with-low-memory --with-extra-charsets=complex
BSDI BSD/OS 3.1 i386 with gcc 2.7.2.1
CC=gcc CXX=gcc CXXFLAGS=-O ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex
BSDI BSD/OS 2.1 i386 with gcc 2.7.2
CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex
AIX 2 4 with gcc 2.7.2.2
CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex

Si vous avez des options plus optimales pour l'une des configurations précédement listées, vous pouvez toujours nous en faire part sur la liste de distribution des développeurs (internals@lists.mysql.com).

Les distributions RPM antérieures à la version 3.22 de MySQL sont contribuées par nos utilisateurs. A partir de la version 3.22, les RPM sont générés par nous chez MySQL AB.

Si vous voulez compiler une version de débogage de MySQL, vous devez ajouter --with-debug ou --with-debug=full aux lignes de configurations précédentes et effacer les options -fomit-frame-pointer.

Pour les distributions Windows, voyez section 2.1.2 Installer MySQL sous Windows.

2.2.11 Installer MySQL à partir d'une distribution binaire

Vous pouvez aussi vous référer à section 2.1.2.1 Installation des binaires, section 2.1.1 Installer MySQL sous Linux, et section 8.4.13 Compiler les clients.

Vous aurez besoin des outils suivants pour installer les binaires MySQL :

L'utilisation de fichiers RPM (RedHat Package Manager) est une autre façon d'installer MySQL sous Linux. See section 2.1.1 Installer MySQL sous Linux.

Si vous rencontrez des problèmes, utilisez toujours mysqlbug pour poster des questions à mysql@lists.mysql.com. Même si le problème n'est pas un bogue, mysqlbug rassemble des informations sur le système qui aidera les autres à résoudre votre problème. En n'utilisant pas mysqlbug, vous amoindrissez vos chances d'obtenir une solution à votre problème ! Vous trouverez mysqlbug dans le répertoire `scripts' après avoir désarchivé la distribution. See section 1.7.1.3 Comment rapporter un bogue ou un problème.

Les commandes de base que vous devez lancer pour installer et utiliser MySQL à partir des binaires sont les suivantes :

shell> groupadd mysql
shell> useradd -g mysql mysql
shell> cd /usr/local
shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf -
shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell> cd mysql
shell> scripts/mysql_install_db
shell> chown -R root  .
shell> chown -R mysql data
shell> chgrp -R mysql .
shell> bin/safe_mysqld --user=mysql &
or
shell> bin/mysqld_safe --user=mysql &
si vous utilisez MySQL 4.x

Vous pouvez ajouter des nouveaux utilisateurs en utilisant le script bin/mysql_setpermission si vous installez les modules Perl DBI et Msql-Mysql-modules.

Une description plus détaillée est disponible ci-dessous.

Pour installer une distribution binaire, suivez ces étapes et procédez à section 2.4 Configuration après l'installation, et tests, pour la configuration et les tests consécutifs à l'installation :

  1. Choisissez le répertoire ou vous voulez désarchiver la distribution et déplacez-vous y. Dans l'exemple suivant, nous désarchivons la distribution dans le répertoire `/usr/local' et créons un répertoire `/usr/local/mysql' dans lequel MySQL est installé. (Les instructions suivantes supposent bien sûr que vous avez les autorisations suffisantes pour créer des fichiers dans `/usr/local'. Si ce répertoire est protégé, vous aurez besoin de faire l'installation en tant que root.)
  2. Procurez-vous un fichier de distribution à partir d'un des sites cités dans section 2.2.1 Comment obtenir MySQL ?. Les distributions binaires de MySQL sont fournies sous forme d'archives tar compressées et ont des noms de la forme `mysql-VERSION-OS.tar.gz', où VERSION est un nombre (par exemple, 3.21.15), et OS indique le type de système d'exploitation pour lequel la distribution est compilée (par exemple, pc-linux-gnu-i586).
  3. Si vous voyez une distribution binaire avec le suffixe -max, cela signifie que le binaire supporte les tables avec les transactions ainsi que d'autres fonctionnalités. See section 4.7.5 mysqld-max, la version étendue du serveur mysqld. Veuillez noter que tous les binaires sont compilés à partir du même code source.
  4. Ajoutez un utilisateur et un groupe avec les droits desquels mysqld fonctionnera :
    shell> groupadd mysql
    shell> useradd -g mysql mysql
    
    Ces commandes ajoutent le groupe mysql group et l'utilisateur mysql. La syntaxe de useradd et de groupadd peut varier de façon significative suivant les versions d'Unix. Elles peuvent aussi s'appeler adduser et addgroup. Vous pouvez aussi souhaiter nommer le groupe et l'utilisateur autrement que mysql.
  5. Déplacez-vous dans le répertoire d'installation choisi :
    shell> cd /usr/local
    
  6. Décompressez la distribution et créez le répertoire d'installation :
    shell> gunzip < /chemin/de/mysql-VERSION-OS.tar.gz | tar xvf -
    shell> ln -s chemin-complet-de-mysql-VERSION-OS mysql
    
    La première commande crée un répertoire `mysql-VERSION-OS'. La seconde commande crée un lien symbolique vers ce répertoire. Cela vous permet de vous référer plus facilement au répertoire d'installation en appelant `/usr/local/mysql'.
  7. Déplacez vous dans le répertoire d'installation :
    shell> cd mysql
    
    Vous y trouverez de nombreux fichiers et sous-répertoires. Les plus importants lors de l'installation sont les sous-répertoires `bin' et `scripts'.
    `bin'
    Ce répertoire contient les programmes clients ainsi que le serveur. Vous devriez ajouter le chemin complet de ce répertoire à votre variable d'environnement PATH de telle façon que votre interpréteur de commandes trouve les programmes facilement. See section E Variables d'environnement.
    `scripts'
    Ce répertoire contient le script mysql_install_db utilisé pour initialiser la base de données mysql contenant les tables de privilèges servant à gérer les permissions d'accès au serveur.
  8. Si vous souhaitez utiliser mysqlaccess et placer la distribution MySQL à un endroit non standard, vous devez changer l'endroit où mysqlaccess s'attend à trouver le client mysql. Editez le script `bin/mysqlaccess' aux environs de la ligne 18. Cherchez une ligne qui ressemble à ceci :
    $MYSQL     = '/usr/local/bin/mysql';    # path to mysql executable
    
    Changez le chemin pour avoir le bon endroit où mysql est actuellement stocké sur votre système. Si vous ne le faites pas, vous obtiendrez une erreur Broken pipe quand vous lancerez mysqlaccess.
  9. Créez les tables de privilèges MySQL (ceci est nécessaire si vous n'avez jamais installé MySQL auparavant) :
    shell> scripts/mysql_install_db
    
    Veuillez noter que les versions de MySQL antérieures à la version 3.22.10 démarraient le serveur MySQL quand vous exécutiez mysql_install_db. Ce n'est plus le cas.
  10. Nommez root en tant que propriétaire des binaires et l'utilisateur avec les droits duquel vous ferez fonctionner mysqld comme propriétaire du répertoire de données :
    shell> chown -R root  /usr/local/mysql
    shell> chown -R mysql /usr/local/mysql/var
    shell> chgrp -R mysql /usr/local/mysql
    
    La première commande change les attributs owner en faveur de l'utilisateur root, la seconde change les attributs owner du répertoire de données en faveur de l'utilisateur mysql, et la troisième change les attributs group en faveur du groupe mysql.
  11. Si vous voulez installer le support de l'interface Perl DBI/DBD, référez-vous à section 2.7 Commentaires sur l'installation de Perl.
  12. Si vous souhaitez que MySQL se lance automatiquement au démarrage de votre machine, vous pouvez copier support-files/mysql.server à l'endroit où votre système stocke ses fichiers de démarrage. Davantage d'informations sont disponibles dans le script support-files/mysql.server lui-même et dans section 2.4.3 Lancer et arrêter MySQL automatiquement..

Après que tout soit installé, vous devez initialiser et tester votre distribution :

shell> /usr/local/mysql/bin/safe_mysqld --user=mysql &

Procédez maintenant à section 4.7.2 safe_mysqld, le script père de mysqld, et à la See section 2.4 Configuration après l'installation, et tests.

2.3 Installer MySQL à partir des sources

Avant de procéder à l'installation à partir des sources, vérifiez auparavant que notre distribution binaire pour votre plate-forme ne fonctionne pas. Nous faisons un maximum d'efforts pour nous assurer que nos binaires sont compilés avec les meilleures options possibles.

Vous avez besoin des outils suivants pour compiler et installer MySQL à partir des sources :

Si vous utilisez une version récente de gcc, suffisamment récente pour reconnaître l'option -fno-exceptions, il est très important que vous l'utilisiez. Sinon, vous risquez de compiler un binaire qui crashe aléatoirement. Nous recommandons donc l'utilisation de -felide-constructors et -fno-rtti en même temps que -fno-exceptions. En cas de doute, faites la chose suivante :


CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions \
       -fno-rtti" ./configure --prefix=/usr/local/mysql --enable-assembler \
       --with-mysqld-ldflags=-all-static

Sur la plupart des systèmes, il en résultera un binaire rapide et stable.

Si vous rencontrez des problèmes, utilisez toujours mysqlbug pour poster des questions à mysql@lists.mysql.com. Même si le problème n'est pas un bogue, mysqlbug rassemble des informations sur le système qui aidera les autres à résoudre votre problème. En n'utilisant pas mysqlbug, vous amoindrissez vos chances d'obtenir une solution à votre problème ! Vous trouverez mysqlbug dans le répertoire `scripts' après avoir désarchivé la distribution. See section 1.7.1.3 Comment rapporter un bogue ou un problème.

2.3.1 Vue d'ensemble de l'installation rapide

Les commandes de base que vous devez exécuter pour installer MySQL à partir des sources sont :

shell> groupadd mysql
shell> useradd -g mysql mysql
shell> gunzip < mysql-VERSION.tar.gz | tar -xvf -
shell> cd mysql-VERSION
shell> ./configure --prefix=/usr/local/mysql
shell> make
shell> make install
shell> scripts/mysql_install_db
shell> chown -R root  /usr/local/mysql
shell> chown -R mysql /usr/local/mysql/var
shell> chgrp -R mysql /usr/local/mysql
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> /usr/local/mysql/bin/safe_mysqld --user=mysql &
ou
shell> /usr/local/mysql/bin/mysqld_safe --user=mysql &
si vous utilisez MySQL 4.x.

Si vous voulez avoir le support des tables InnoDB, vous devez éditer le fichier /etc/my.cnf et enlever le caractère # avant le paramètre qui commence par innodb_.... See section 4.1.2 Fichier d'options `my.cnf', et section 7.5.2 Options de démarrage InnoDB.

Si vous utilisez un fichier RPM source, faites :

shell> rpm --rebuild MySQL-VERSION.src.rpm

Cela produira un fichier RPM binaire que vous pourrez installer.

Vous pouvez ajouter des utilisateurs en lançant le script bin/mysql_setpermission si vous installez les modules Perl DBI et Msql-Mysql-modules.

Ci-dessous, une description plus détaillée.

Pour installer MySQL à partir des sources, suivez ces étapes et procédez à section 2.4 Configuration après l'installation, et tests, pour la configuration et les tests consécutifs à l'installation :

  1. Notez le répertoire où vous voulez décompacter les sources et déplacez vous y.
  2. Récupérez une distribution des sources à partir d'un des sites listés sur section 2.2.1 Comment obtenir MySQL ?.
  3. Si vous souhaitez utiliser les tables Berkeley DB avec MySQL, vous devez obtenir une version modifiée du code source de Berkeley DB. Veuillez lire le chapitre relatif aux tables Berkeley DB avant de procéder. See section 7.6 Tables BDB ou BerkeleyDB. Les distributions des sources MySQL sont fournies sous forme d'archive tar compressées et ont des noms comme `mysql-VERSION.tar.gz', où VERSION est un nombre comme 5.0.0-alpha.
  4. Ajoutez un utilisateur et un groupe avec les droits desquels mysqld fonctionnera :
    shell> groupadd mysql
    shell> useradd -g mysql mysql
    
    Ces commandes ajoutent le groupe mysql group et l'utilisateur mysql. La syntaxe de useradd et de groupadd peut varier de façon significative suivant les versions d'Unix. Elles peuvent aussi s'appeler adduser et addgroup. Vous pouvez aussi souhaiter nommer le groupe et l'utilisateur autrement que mysql.
  5. Décompressez la distribution dans le répertoire courant :
    shell> gunzip < /path/to/mysql-VERSION.tar.gz | tar xvf -
    
    Cette commande crée un répertoire nommé `mysql-VERSION'.
  6. Déplacez-vous dans le répertoire racine de la distrbution décompressée :
    shell> cd mysql-VERSION
    
    Notez bien que vous devez alors configurer et compiler MySQL depuis ce répertoire racine. Vous ne pouvez pas le compiler à partir d'un autre répertoire.
  7. Configurez votre version et compilez tout :
    shell> ./configure --prefix=/usr/local/mysql
    shell> make
    
    Quand vous lancez la commande configure, vous pouvez spécifier quelques options. Lancez ./configure --help pour une liste des options disponibles. La partie section 2.3.3 Options habituelles de configure, traite des options les plus utiles. Si configure échoue, et que vous êtes sur le point d'envoyer un mail à mysql@lists.mysql.com pour demander de l'aide, ajoutez s'il vous plait les quelques lignes de `config.log' qui pourraient selon vous aider à résoudre le problème. Ajoutez aussi les deux dernières lignes de sortie de configure si configure s'arrête précipitemment. Envoyez le rapport de bogue en utilisant le script mysqlbug. See section 1.7.1.3 Comment rapporter un bogue ou un problème. Si la compilation échoue, référez-vous à section 2.3.5 Problèmes de compilation? pour de l'aide sur les problèmes les plus courants.
  8. Installez tout :
    shell> make install
    
    Vous aurez certainement besoin de lancer cette commande en tant que root.
  9. Créez les tables de gestion des droits MySQL (ceci est nécessaire uniquement si vous n'avez pas installé MySQL auparavant):
    shell> scripts/mysql_install_db
    
    Veuillez noter que les versions de MySQL antérieures à la version 3.22.10 démarraient le serveur MySQL quand vous exécutiez mysql_install_db. Ce n'est plus le cas!
  10. Nommez root en tant que propriétaire des binaires et l'utilisateur avec les droits duquel vous ferez fontionner mysqld comme propriétaire du répertoire de données :
    shell> chown -R root  /usr/local/mysql
    shell> chown -R mysql /usr/local/mysql/var
    shell> chgrp -R mysql /usr/local/mysql
    
    La première commande change les attributs owner en faveur de l'utilisateur root, la seconde change les attributs owner du répertoire de données en faveur de l'utilisateur mysql, et la troisième change les attributs group en faveur du groupe mysql.
  11. Si vous voulez installer le support de l'interface Perl DBI/DBD, référez-vous à section 2.7 Commentaires sur l'installation de Perl.
  12. Si vous souhaitez que MySQL se lance automatiquement au démarrage de votre machine, vous pouvez copier support-files/mysql.server à l'endroit où votre système stocke ses fichiers de démarrage. Davantage d'informations sont disponibles dans le script support-files/mysql.server lui-même et dans section 2.4.3 Lancer et arrêter MySQL automatiquement..

Après que tout soit installé, vous devez initialiser et tester votre distribution :

shell> /usr/local/mysql/bin/safe_mysqld --user=mysql &

Si cette commande échoue immédiatement sur un mysqld daemon ended, vous pouvez trouvez des informations dans le fichier `mysql-data-directory/'hostname'.err'. La raison la plus courante est que vous avez déjà un autre serveur mysqld qui fonctionne. See section 4.1.4 Faire fonctionner plusieurs serveurs MySQL sur la même machine.

Procédez maintenant à la section 2.4 Configuration après l'installation, et tests.

2.3.2 Appliquer des patches

Parfois, des patches sont publiés sur la liste de diffusion ou sont placés sur la page des patches sur le site de MySQL (http://www.mysql.com/downloads/patches.html).

Pour appliquer un patch venant de la liste de diffusion, sauvegardez le message qui contient le patch, placez-le dans le répertoire racine de vos sources MySQL et lancez les commandes suivantes :

shell> patch -p1 < patch-file-name
shell> rm config.cache
shell> make clean

Les patches venant du site FTP sont distribués sous forme de fichiers en texte clair ou bien sous forme de fichiers compressés avec gzip. Appliquez un patch en texte clair de la même façon qu'avec les patches de la liste de diffusion. Pour appliquer un patch compressé, déplacez-vous dans le répertoire racine de vos sources et lancez les commandes suivantes :

shell> gunzip < patch-file-name.gz | patch -p1
shell> rm config.cache
shell> make clean

Après avoir appliqué un patch, suivez les instructions d'une installation normale à partir des sources, à commencer par l'étape du ./configure. Après avoir lancé le make install, redémarrez votre serveur MySQL.

Vous aurez certainement besoin d'arrêter tout autre serveur MySQL avant de lancer make install. (Utilisez pour cela mysqladmin shutdown.) Certains systèmes n'autorisent pas l'installation d'une nouvelle version d'un programme ; elle remplace la version qui est en train de s'exécuter.

2.3.3 Options habituelles de configure

Le script configure vous donne un bon moyen de contrôler la configuration de votre distribution MySQL. Habituellement, vous faites cela en spécifiant les options dans la ligne de commande de configure. Vous pouvez aussi affecter le comportement de configure en utilisant certaines variables d'environnement. See section E Variables d'environnement. Pour une liste des options supportées par configure, exécutez cette commande :

shell> ./configure --help

Les options de configure les plus utilisées sont décrites ici :

2.3.4 Installer à partir de l'arbre source de développement

Attention : Vous devez lire cette partie seulement si vous voulez nous aider à tester notre nouveau code. Si vous souhaitez seulement faire fonctionner MySQL sur votre système, vous devriez utiliser la distribution d'une version standard (que ce soit une distribution sous forme de sources ou de binaire).

Pour obtenir notre arbre source de développement le plus réent, suivez les instructions suivantes :

  1. Téléchargez BitKeeper à partir de http://www.bitmover.com/cgi-bin/download.cgi. Vous aurez besoin de Bitkeeper 2.0 ou supérieur pour accéder à notre dépôt.
  2. Suivez les instructions pour l'installer.
  3. Après avoir installé BitKeeper, commencez par vous déplacer dans le répertoire à partir duquel vous voulez travailler, et lancez l'une des commandes suivantes pour dupliquer la branche MySQL de votre choix : Pour dupliquer la branche 3.23, utilisez cette commande :
    shell> bk clone bk://work.mysql.com:7000 mysql-3.23
    
    Pour dupliquer la branche 4.0, utilisez cette commande :
    shell> bk clone bk://work.mysql.com:7001 mysql-4.0
    
    Pour dupliquer la branche 4.1, utilisez cette commande :
    shell> bk clone bk://work.mysql.com:7004 mysql-4.1
    
    Dans les exemples précédents, l'arbre source sera déposé dans les sous-répertoires `mysql-3.23/', `mysql-4.0/', ou `mysql-4.1/' de votre répertoire courant. Le premier téléchargement de l'arbre source peut prendre un certain temps, selon la vitesse de votre connexion. Soyez patients.
  4. Vous aurez besoin de GNU autoconf 2.52, de automake 1.5, de libtool 1.4, et de m4 pour lancer la prochaine série de commandes.
    shell> cd mysql-4.0
    shell> bk -r get -Sq
    shell> aclocal; autoheader; autoconf;  automake;
    shell> ./configure  # Ajoutez ici vos options favorites
    shell> make
    
    Si vous obtenez des erreurs étranges pendant cette étape, vérifiez bien que vous avez vraiment installé libtool! Une collection de nos scripts de configuration les plus courants de trouve dans le sous-répertoire `BUILD/'. Si vous êtes fainéants, vous pouvez utiliser `BUILD/compile-pentium-debug'. Pour compiler sur une architecture différente, modifiez ce script en enlevant les drapeaux spécifiques au Pentium.
  5. Quand la compilation est achevée, lancez make install. Prenez garde sur des machines de production. Cette commande pourrait écraser votre installation actuelle. Si vous avez une autre installation de MySQL, nous vous recommandons de lancer ./configure avec des valeurs des options prefix, with-tcp-port, et unix-socket-path différentes de celles de votre serveur de production.
  6. Torturez votre nouvelle installation et tentez de faire planter les nouvelles fonctionnalités. Commencez par lancer make test. See section 9.1.2 Suite de test de MySQL.
  7. Si vous avez échoué avec l'étape make et que la distribution ne compile pas, envoyez un rapport de l'incident à bugs@lists.mysql.com. Si vous avez installé la dernière version des indispensables outils GNU, et qu'ils échouent dans l'analyse de vos fichiers de configuration, envoyez aussi un rapport. D'autre part, si vous exécutez aclocal et que vous obtenez l'erreur command not found ou un problème du même type, n'envoyez pas de rapport. A la place, assurez vous que les outils nécessaires sont bien installés et que votre variable PATH est configurée de telle façon que votre interpréteur de commandes les trouvent.
  8. Après la première opération bk clone pour obtenir l'arbre source, vous devez lancer régulièrement bk pull pour obtenir les mises à jour.
  9. Vous pouvez examiner l'historique des changements de l'arbre avec toutes les différences en utilisant bk sccstool. Si vous apercevez des différences anormales ou sur lesquelles vous avez des questions, n'hésitez pas à envoyer un e-mail à internals@lists.mysql.com. De même, si vous pensez avoir une meilleure méthode pour traiter un problème, envoyez un e-mail accompagné d'un patch à la même adresse. bk diffs vous fournira un patch après que vous ayez fait vos changements aux sources. Si vous n'avez pas le temps de coder votre idée, envoyez en juste une description.
  10. BitKeeper dispose d'une aide agréable à laquelle vous pouvez accéder via bk helptool.
  11. Veuillez noter que chaque commit (bk ci ou bk citool) postera un message avec un aperçu des changements à notre liste de diffusion interne, à la façon habituelle des propositions openlogging.org avec seulement les commentaires des changements. Généralement, vous n'aurez pas besoin d'utiliser commit (l'arbre public interdisant les bk push), mais plutôt d'utiliser la méthode bk diffs décrite plus haut.

2.3.5 Problèmes de compilation?

Tous les programmes MySQL compilent proprement chez nous, sans aucune alerte sur Solaris avec gcc. Sur d'autres systèmes, des alertes peuvent apparaître à cause de différences dans le système d'inclusions. Voyez section 2.3.6 Notes relatives aux MIT-pthreads pour les alertes qui peuvent apparaître avec MIT-pthreads. Pour d'autres problèmes, voyez la liste suivante.

La solution à de nombreux problèmes implique une reconfiguration. Si vous avez besoin de faire une reconfiguration voici quelques conseils généraux :

Pour éviter d'utiliser de vieilles informations de configuration, ou des vieux fichiers d'objet, vous pouvez utiliser ces commandes, avant configure :

shell> rm config.cache
shell> make clean

Alternativement, vous pouvez aussi utiliser make distclean.

La liste suivante décrit certains problèmes lors de la compilation de MySQL, qui surviennent souvent :

2.3.6 Notes relatives aux MIT-pthreads

Cette section décrit quelques informations concernant l'utilisation des MIT-pthreads.

Notez que sur Linux vous ne devez pas utiliser les MIT-pthreads mais installer LinuxThreads ! See section 2.6.1 Notes relatives à Linux (toutes versions).

Si votre système ne fournit pas un support natif des threads, vous aurez besoin de construire MySQL en utilisant le package des MIT-pthreads. Cela inclut les anciens systèmes FreeBSD, SunOS 4.x, S