1484
Manuel de référence MySQL

Manuel de référence MySQL - SILECS · Manuel de référence MySQL - SILECS ... mysql. 1

  • Upload
    others

  • View
    7

  • Download
    1

Embed Size (px)

Citation preview

  • Manuel de référence MySQL

  • Manuel de référence MySQL

  • Table des matièresPreface ..............................................................................................................xxi1. Informations générales ........................................................................................ 1

    1.1. A propos du manuel ................................................................................. 21.1.1. Conventions utilisées dans ce manuel ............................................... 2

    1.2. Présentation du système de bases de données MySQL .................................... 41.2.1. Histoire de MySQL ....................................................................... 51.2.2. Les fonctionnalités principales de MySQL ......................................... 61.2.3. Jusqu'à quel point MySQL est il stable ? ........................................... 81.2.4. Quelles tailles peuvent atteindre les tables MySQL .............................. 91.2.5. Compatibilité an 2000 ...................................................................10

    1.3. Plan de développement de MySQL ............................................................111.3.1. MySQL 4.0 en bref ......................................................................121.3.2. MySQL 4.1 en bref ......................................................................141.3.3. MySQL 5.0, les prochains développements .......................................15

    1.4. Sources d'informations MySQL ................................................................151.4.1. Listes de diffusion MySQL ............................................................151.4.2. Support de la communauté MySQL sur IRC (Internet Relay Chat) ........231.4.3. Support de la communauté MySQL sur les forums MySQL .................23

    1.5. Quels standards respecte MySQL ? ............................................................231.5.1. Quels standards suit MySQL ? .......................................................241.5.2. Sélectionner les modes SQL ..........................................................241.5.3. Exécuter MySQL en mode ANSI ....................................................241.5.4. Extensions MySQL au standard SQL-92 ..........................................251.5.5. Différences entre MySQL et le standard SQL-92 ...............................281.5.6. Comment MySQL gère les contraintes .............................................341.5.7. Erreurs connues, et limitations de MySQL ........................................35

    2. Installer MySQL ...............................................................................................422.1. Notes générales à propos de l'installation ....................................................42

    2.1.1. Systèmes d'exploitation supportés par MySQL ..................................422.1.2. Choisir votre version de MySQL ....................................................442.1.3. Comment obtenir MySQL ? ...........................................................552.1.4. Vérifier l'intégrité des paquets avec MD5 ou GnuPG ...........................552.1.5. Dispositions d'installation ..............................................................58

    2.2. Installation standard rapide de MySQL .......................................................602.2.1. Installer MySQL sous Windows .....................................................602.2.2. Choisir un paquet d'installation .......................................................612.2.3. Installer MySQL avec l'assistant automatique ....................................612.2.4. Installation de MySQL avec l'assistant .............................................622.2.5. Utiliser l'assistant de configuration ..................................................652.2.6. Installer MySQL à partir d'une archive ZIP sans assistant ....................692.2.7. Extraction de l'archive d'installation ................................................692.2.8. Créer un fichier d'options ..............................................................702.2.9. Démarrer MySQL depuis la ligne de commande Windows ..................732.2.10. Tester son installation MySQL .....................................................762.2.11. Mettre à jour MySQL sous Windows .............................................772.2.12. Installer MySQL sous Linux ........................................................812.2.13. Installer MySQL sur Mac OS X ....................................................832.2.14. Installer MySQL sur NetWare ......................................................85

    2.3. Installer MySQL sur d'autres systèmes type Linux ........................................872.4. Installation de MySQL avec une distribution source ......................................90

    2.4.1. Installation depuis les sources : présentation ......................................912.4.2. Options habituelles de configure ................................................942.4.3. Installer à partir de l'arbre source de développement ...........................972.4.4. Problèmes de compilation? ............................................................992.4.5. Notes relatives aux MIT-pthreads ............................................ 1032.4.6. La distribution source Windows ................................................... 1042.4.7. Compiler les clients MySQL sous Windows .................................... 107

    iv

  • 2.5. Procédure de post-installation ................................................................. 1082.5.1. Post-installation sous Windows .................................................... 1082.5.2. Procédures de post-installation sous Unix ....................................... 1092.5.3. Création des premiers droits MySQL ............................................. 119

    2.6. Changer de version de MySQL ............................................................... 1222.6.1. Passer en de version 4.1 en version 5.0 ........................................... 1232.6.2. Passer de la version 4.0 à la version 4.1 .......................................... 1242.6.3. Passer de la version 3.23 à la version 4.0 ........................................ 1272.6.4. Passer de la version 3.22 à la version 3.23 ...................................... 1312.6.5. Passer de la version 3.21 à la version 3.22 ...................................... 1332.6.6. Passer de la version 3.20 à la version 3.21 ...................................... 1332.6.7. Mise à jour des tables de droits ..................................................... 1342.6.8. Migrer depuis une autre architecture .............................................. 135

    2.7. Réduire de version de MySQL ................................................................ 1362.7.1. Revenir en version 4.1 ................................................................ 1372.7.2. Revenir en version 4.0 ................................................................ 137

    2.8. Notes spécifiques aux systèmes d'exploitation ............................................ 1382.8.1. Notes relatives à Linux (toutes versions) ........................................ 1382.8.2. Notes relatives à Mac OS X ......................................................... 1452.8.3. Notes pour Solaris ...................................................................... 1462.8.4. Notes relatives à BSD ................................................................. 1502.8.5. Notes sur les autres Unix ............................................................. 1532.8.6. Notes relatives à OS/2 ................................................................ 1622.8.7. Notes relatives à BeOS ............................................................... 163

    2.9. Commentaires sur l'installation de Perl ..................................................... 1632.9.1. Installer Perl sur Unix ................................................................. 1632.9.2. Installer ActiveState Perl sur Windows .......................................... 1642.9.3. Problèmes lors de l'utilisation des interfaces Perl DBI et DBD ............. 165

    3. Tutoriels d'introduction .................................................................................... 1683.1. Connexion et déconnexion au serveur ...................................................... 1683.2. Entrer des requêtes ............................................................................... 1693.3. Création et utilisation d'une base de données .............................................. 172

    3.3.1. Créer et sélectionner une base de données ....................................... 1733.3.2. Création d'une table .................................................................... 1733.3.3. Charger des données dans une table ............................................... 1753.3.4. Récupérer des informations à partir d'une table ................................ 176

    3.4. Obtenir des informations à propos des bases de données et des tables ............. 1893.5. Utilisation de mysql en mode batch ........................................................ 1903.6. Exemples de requêtes usuelles ................................................................ 191

    3.6.1. La valeur maximale d'une colonne ................................................ 1923.6.2. La ligne contenant le maximum d'une certaine colonne ..................... 1923.6.3. Maximum d'une colonne par groupe .............................................. 1933.6.4. La ligne contenant la plus grande valeur d'un certain champ par rapport à ungroupe ............................................................................................. 1933.6.5. Utiliser les variables utilisateur ..................................................... 1943.6.6. Utiliser les clefs étrangères .......................................................... 1953.6.7. Recherche sur deux clefs ............................................................. 1963.6.8. Calcul du nombre de visites par jour .............................................. 1963.6.9. Utiliser AUTO_INCREMENT ........................................................ 197

    3.7. Requêtes du projet Twin ........................................................................ 1983.7.1. Trouver tous les jumeaux répondant aux critères .............................. 1983.7.2. Afficher une table avec l'état des paires de jumeaux .......................... 200

    3.8. Utilisation de MySQL avec Apache ......................................................... 2014. Utiliser les programmes MySQL ........................................................................ 202

    4.1. Présentation des logiciels MySQL ........................................................... 2024.2. Appeler des programmes MySQL ............................................................ 2034.3. Spécifier des options aux programmes ...................................................... 203

    4.3.1. Options de ligne de commande de mysqld .................................... 2044.3.2. Fichier d'options my.cnf ........................................................... 2054.3.3. Utiliser les variables d'environnement pour spécifier des options ......... 2094.3.4. Utiliser les options pour configurer des variables de programme ......... 209

    5. Administration du serveur ................................................................................ 2115.1. Scripts serveur MySQL et utilitaires ......................................................... 211

    Manuel de référence MySQL

    v

  • 5.1.1. Présentation des scripts serveurs et des utilitaires ............................. 2115.1.2. mysqld-max, la version étendue du serveur mysqld ..................... 2125.1.3. safe_mysqld, le script père de mysqld ..................................... 2145.1.4. Le script de démarrage mysql.server ....................................... 2175.1.5. mysqld_multi, un programme pour gérer plusieurs serveurs MySQL 217

    5.2. Configuration de MySQL ...................................................................... 2215.2.1. Options de ligne de commande de mysqld .................................... 2215.2.2. Le mode SQL du serveur ............................................................. 2305.2.3. Variables serveur système ........................................................... 2345.2.4. Variables de statut du serveur ....................................................... 256

    5.3. Le processus d'extinction de MySQL ....................................................... 2625.4. Sécurité générale du serveur ................................................................... 263

    5.4.1. Guide de sécurité ....................................................................... 2635.4.2. Protéger MySQL contre les attaques .............................................. 2665.4.3. Options de démarrage qui concernent la sécurité .............................. 2685.4.4. Problèmes de sécurité avec LOAD DATA LOCAL .......................... 268

    5.5. Règles de sécurité et droits d'accès au serveur MySQL ................................ 2695.5.1. Rôle du système de privilèges ...................................................... 2695.5.2. Comment fonctionne le système de droits ....................................... 2705.5.3. Droits fournis par MySQL ........................................................... 2735.5.4. Se connecter au serveur MySQL ................................................... 2755.5.5. Contrôle d'accès, étape 1 : Vérification de la connexion ..................... 2765.5.6. Contrôle d'accès, étape 2 : Vérification de la requête ......................... 2805.5.7. Quand les modifications de privilèges prennent-ils effets ? ................ 2825.5.8. Causes des erreurs Access denied ........................................... 2835.5.9. Hashage de mots de passe en MySQL 4.1 ....................................... 288

    5.6. Gestion des comptes utilisateurs de MySQL .............................................. 2925.6.1. Nom d'utilisateurs MySQL et mots de passe .................................... 2935.6.2. Ajouter de nouveaux utilisateurs à MySQL ..................................... 2945.6.3. Supprimer un compte utilisateur de MySQL .................................... 2965.6.4. Limiter les ressources utilisateurs .................................................. 2975.6.5. Configurer les mots de passe ........................................................ 2985.6.6. Garder vos mots de passe en lieu sûr .............................................. 2995.6.7. Utilisation des connexions sécurisées ............................................. 300

    5.7. Prévention des désastres et restauration .................................................... 3075.7.1. Sauvegardes de base de données ................................................... 3075.7.2. Exemples de stratégie de sauvegarde et restauration ......................... 3095.7.3. Utilisation de myisamchk pour la maintenance des tables et leurrecouvrement .................................................................................... 3125.7.4. Mettre en place un régime d'entretien de MySQL ............................. 3245.7.5. Obtenir des informations sur une table ........................................... 325

    5.8. Localisation MySQL et utilisation internationale ........................................ 3295.8.1. Le jeu de caractères utilisé pour les données et le stockage ................. 3295.8.2. Langue des messages d'erreurs ..................................................... 3315.8.3. Ajouter un nouveau jeu de caractères ............................................. 3315.8.4. Le tableau de définition des caractères ........................................... 3335.8.5. Support d'assemblage des chaînes ................................................. 3335.8.6. Support des caractères multi-octets ................................................ 3345.8.7. Problèmes avec les jeux de caractères ............................................ 3345.8.8. Support des fuseaux horaires avec MySQL ..................................... 334

    5.9. Les fichiers de log de MySQL ................................................................ 3365.9.1. Le log d'erreurs ......................................................................... 3365.9.2. Le log général de requêtes ........................................................... 3365.9.3. Le log de modification ................................................................ 3375.9.4. Le log binaire ............................................................................ 3375.9.5. Le log des requêtes lentes ............................................................ 3405.9.6. Entretien des fichiers de log ......................................................... 340

    5.10. Faire fonctionner plusieurs serveurs MySQL sur la même machine .............. 3415.10.1. Utiliser plusieurs serveurs MySQL un serveur Windows .................. 3435.10.2. Utiliser plusieurs serveurs sous Unix ............................................ 3465.10.3. Utiliser les clients dans un environnement multi-serveur .................. 347

    5.11. Cache de requêtes MySQL ................................................................... 3485.11.1. Comment fonctionne le cache de requêtes ..................................... 349

    Manuel de référence MySQL

    vi

  • 5.11.2. Options relatives au cache de requêtes dans un SELECT .................. 3505.11.3. Configuration du cache de requêtes ............................................. 3505.11.4. Statut du cache de requêtes et maintenance ................................... 351

    6. Réplication de MySQL .................................................................................... 3536.1. Introduction à la réplication .................................................................... 3536.2. Présentation de l'implémentation de la réplication ....................................... 3536.3. Détails d'implémentation de la réplication ................................................. 354

    6.3.1. Etat de réplication du maître ........................................................ 3556.3.2. Etats du thread esclave d'E/S ........................................................ 3566.3.3. Etats des esclaves de réplication ................................................... 3576.3.4. Fichiers de relais et de statut de la réplication .................................. 358

    6.4. Comment mettre en place la réplication .................................................... 3596.5. Compatibilité de la réplication entre les versions de MySQL ........................ 3636.6. Changer de version de réplication ............................................................ 364

    6.6.1. Passer à la réplication version 4.0 .................................................. 3646.6.2. Passer à la réplication version 5.0 .................................................. 364

    6.7. Fonctionnalités de la réplication et problèmes connus .................................. 3656.8. Options de démarrage de la réplication ..................................................... 3686.9. FAQ de la réplication ............................................................................ 3766.10. Correction de problèmes courants .......................................................... 3826.11. Rapporter des bugs de réplication .......................................................... 382

    7. Optimisation de MySQL .................................................................................. 3847.1. Présentation de l'optimisation ................................................................. 384

    7.1.1. Limitations et inconvénients des choix conceptuels de MySQL ........... 3847.1.2. Portabilité ................................................................................ 3857.1.3. Pour quoi avons nous utilisé MySQL ? .......................................... 3867.1.4. La suite de tests MySQL ............................................................. 3877.1.5. Utiliser vos propres tests de performance ........................................ 388

    7.2. Optimisation des commandes SELECT et autres requêtes ............................. 3897.2.1. Syntaxe de EXPLAIN (Obtenir des informations sur les SELECT) ...... 3897.2.2. Mesurer les performances d'une requête ......................................... 3977.2.3. Vitesse des requêtes SELECT ...................................................... 3987.2.4. Comment MySQL optimise les clauses WHERE ............................... 3987.2.5. Optimisation d'intervalle ............................................................. 4007.2.6. Optimisation de combinaison d'index ............................................. 4037.2.7. Comment MySQL optimise IS NULL .......................................... 4067.2.8. Comment MySQL optimise DISTINCT ........................................ 4077.2.9. Comment MySQL optimise les clauses LEFT JOIN et RIGHT JOIN 4077.2.10. Comment MySQL optimise ORDER BY ....................................... 4087.2.11. Comment MySQL optimise les clauses GROUP BY ........................ 4107.2.12. Comment MySQL optimise LIMIT ............................................. 4127.2.13. Comment éviter les analyses de tables .......................................... 4127.2.14. Vitesse des requêtes INSERT ..................................................... 4137.2.15. Vitesses des commandes UPDATE ............................................... 4157.2.16. Rapidité des requêtes DELETE ................................................... 4157.2.17. Autres conseils d'optimisation .................................................... 415

    7.3. Verrouillage de tables ........................................................................... 4187.3.1. Méthodes de verrouillage ............................................................ 4187.3.2. Problème de verrouillage de tables ................................................ 420

    7.4. Optimiser la structure de la base de données .............................................. 4217.4.1. Conception ............................................................................... 4217.4.2. Rendre vos tables aussi compactes que possible ............................... 4227.4.3. Index de colonnes ...................................................................... 4237.4.4. Index sur plusieurs colonnes ........................................................ 4237.4.5. Comment MySQL utilise les index ................................................ 4247.4.6. Le cache de clé des tables MyISAM ............................................... 4267.4.7. Comment MySQL compte les tables ouvertes .................................. 4317.4.8. Quand MySQL ouvre et ferme les tables ........................................ 4317.4.9. Inconvénients de la création d'un grand nombre de tables dans la même basede données ........................................................................................ 432

    7.5. Optimiser le serveur MySQL .................................................................. 4327.5.1. Réglage du système, au moment de la compilation, et paramètres dudémarrage ......................................................................................... 432

    Manuel de référence MySQL

    vii

  • 7.5.2. Réglage des paramètres du serveur ................................................ 4337.5.3. Contrôle des performances de l'optimisateur de requêtes ................... 4367.5.4. Influences de la compilation et des liaisons sur la vitesse de MySQL ... 4367.5.5. Comment MySQL gère la mémoire ............................................... 4377.5.6. Comment MySQL utilise le DNS .................................................. 439

    7.6. Problèmes avec les disques .................................................................... 4397.6.1. Utiliser des liens symboliques ...................................................... 440

    8. MySQL Scripts clients et utilitaires .................................................................... 4448.1. Présentation des scripts serveurs et utilitaires ............................................. 4448.2. myisampack, le générateur de tables MySQL compressées en lecture seule .. 4458.3. mysql, l'outil en ligne de commande ....................................................... 451

    8.3.1. Commandes mysql ................................................................... 4568.3.2. Comment exécuter des commandes SQL depuis un fichier texte ......... 4598.3.3. Conseils avec mysql ................................................................. 459

    8.4. mysqladmin, administration d'un serveur MySQL ................................... 4618.5. mysqlbinlog, Exécuter des requêtes dans le log binaire ........................... 4658.6. mysqlcc, MySQL Control Center .......................................................... 4688.7. Utiliser mysqlcheck pour l'entretien et la réparation ................................ 4708.8. mysqldump, sauvegarde des structures de tables et les données ................... 4738.9. mysqlhotcopy, copier les bases et tables MySQL ................................... 4798.10. mysqlimport, importer des données depuis des fichiers texte .................. 4818.11. Afficher les bases, tables et colonnes ...................................................... 4838.12. perror, expliquer les codes d'erreurs .................................................... 4858.13. L'utilitaire de remplacement de chaînes replace .................................... 485

    9. Structure du langage ........................................................................................ 4879.1. Littéraux : comment écrire les chaînes et les nombres .................................. 487

    9.1.1. Chaînes .................................................................................... 4879.1.2. Nombres .................................................................................. 4899.1.3. Valeurs hexadécimales ................................................................ 4899.1.4. Valeurs booléennes .................................................................... 4909.1.5. Champs de bits .......................................................................... 4909.1.6. Valeurs NULL ........................................................................... 490

    9.2. Noms de bases, tables, index, colonnes et alias ........................................... 4909.2.1. Identifiants ............................................................................... 4929.2.2. Sensibilité à la casse pour les noms ............................................... 492

    9.3. Variables utilisateur .............................................................................. 4939.4. Variables système ................................................................................ 494

    9.4.1. Variables système structurées ....................................................... 4969.5. Syntaxe des commentaires ..................................................................... 4989.6. Cas des mots réservés MySQL ................................................................ 499

    10. Jeux de caractères et Unicode .......................................................................... 50410.1. Jeux de caractères et collation : généralités .............................................. 50410.2. Jeux de caractères et collation dans MySQL ............................................ 50510.3. Déterminer le jeu de caractères et la collation par défaut ............................ 506

    10.3.1. Jeu de caractères et collation serveur ............................................ 50610.3.2. Jeu de caractères et collation de base de données ............................ 50710.3.3. Jeu de caractères de tables et collation .......................................... 50710.3.4. Jeu de caractères de colonne et collation ....................................... 50810.3.5. Exemples d'attribution de jeu de caractères et collation .................... 50810.3.6. Jeux de caractères et collations de connexion ................................. 50910.3.7. Jeu de caractères et collation des chaînes littérales .......................... 51110.3.8. Clause COLLATE dans différentes parties d'une requête SQL ........... 51210.3.9. COLLATE clause de précédence .................................................. 51310.3.10. Opérateur BINARY ................................................................. 51310.3.11. Quelques cas spéciaux où la détermination de la collation est difficile 51310.3.12. Les collation doivent correspondre au bon jeu de caractères ............ 51410.3.13. Un exemple de l'effet de collation .............................................. 515

    10.4. Opérations affectées par le support de jeux de caractères. ........................... 51610.4.1. Chaînes résultats ...................................................................... 51610.4.2. CONVERT() ........................................................................... 51710.4.3. CAST() ................................................................................. 51710.4.4. Commande SHOW .................................................................... 517

    10.5. Support de Unicode ............................................................................. 518

    Manuel de référence MySQL

    viii

  • 10.6. UTF8 pour les meta-données ................................................................ 51910.7. Compatibilité avec d'autres bases de données ........................................... 52010.8. Nouveau format de fichier de configuration de jeux de caractères ................ 52110.9. Jeux de caractères national ................................................................... 52110.10. Préparer le passage de version 4.0 en 4.1 ............................................... 521

    10.10.1. Jeux de caractères 4.0 et binômes de jeux de caractères/collations 4.1correspondants .................................................................................. 52210.10.2. Conversion de colonnes version 4.0 en version 4.1 ........................ 523

    10.11. Les jeux de caractères et collation supportés par MySQL. ......................... 52310.11.1. Les jeux de caractère Unicode ................................................... 52410.11.2. Les jeux de caractères d'Europe de l'Ouest. .................................. 52510.11.3. Les jeux de caractères d'Europe Centrale ..................................... 52610.11.4. Jeu de caractères pour l'Europe du Sud et le Moyen-Orient ............. 52710.11.5. Les jeux de caractères baltes ..................................................... 52710.11.6. Les jeux de caractère cyrilliques ................................................ 52810.11.7. Les jeux de caractères asiatiques ............................................... 528

    11. Types de colonnes ......................................................................................... 53011.1. Introduction aux types de colonnes ......................................................... 530

    11.1.1. Présentation des types numériques of Numeric Types ...................... 53011.1.2. Présentation des types de données temporels : dates et heures ........... 53211.1.3. Présentation des types de chaînes ................................................ 533

    11.2. Types numériques ............................................................................... 53511.3. Les types date et heure ......................................................................... 537

    11.3.1. Les types DATETIME, DATE, et TIMESTAMP ............................... 53811.3.2. Le type TIME .......................................................................... 54211.3.3. Le type YEAR .......................................................................... 54311.3.4. An 2000 et les types date ........................................................... 544

    11.4. Les types chaînes ................................................................................ 54411.4.1. Les types CHAR et VARCHAR ..................................................... 54411.4.2. Les types BINARY and VARBINARY ........................................... 54511.4.3. Les types BLOB et TEXT ........................................................... 54511.4.4. Le type ENUM .......................................................................... 54611.4.5. Le type SET ............................................................................ 548

    11.5. Capacités des colonnes ........................................................................ 54911.6. Choisir le bon type de colonne .............................................................. 55011.7. Utilisation des types de données issues d'autres SGBDR ............................ 550

    12. Fonctions à utiliser dans les clauses SELECT et WHERE ....................................... 55212.1. Opérateurs et fonctions tous types .......................................................... 552

    12.1.1. Précédence des opérateurs ......................................................... 55212.1.2. Parenthèses ............................................................................. 55312.1.3. Opérateurs de comparaison ........................................................ 55312.1.4. Opérateurs logiques .................................................................. 557

    12.2. Les fonctions de contrôle ..................................................................... 55812.3. Fonctions de chaînes de caractères ......................................................... 560

    12.3.1. Opérateurs de comparaison pour les chaînes de caractères ................ 56912.4. Fonctions numériques .......................................................................... 571

    12.4.1. Opérations arithmétiques ........................................................... 57112.4.2. Fonctions mathématiques ........................................................... 573

    12.5. Fonctions de dates et d'heures ............................................................... 57812.6. Recherche en texte intégral (Full-text) dans MySQL ........................... 593

    12.6.1. Booléens de recherches en texte intégral ....................................... 59512.6.2. Recherche en texte intégral avec extension de requête ..................... 59712.6.3. Restrictions avec la recherche en texte intégral .............................. 59812.6.4. Paramétrage précis de la recherche en text intégral de MySQL .......... 59812.6.5. A faire dans la recherche Full-text ......................................... 600

    12.7. Fonctions de transtypage ...................................................................... 60012.8. Autres fonctions ................................................................................. 602

    12.8.1. Fonctions sur les bits ................................................................ 60212.8.2. Fonctions de chiffrements .......................................................... 60412.8.3. Fonctions d'informations ........................................................... 60712.8.4. Fonctions diverses .................................................................... 611

    12.9. Fonctions et options à utiliser dans les clauses GROUP BY ......................... 61312.9.1. Fonctions avec GROUP BY ........................................................ 613

    Manuel de référence MySQL

    ix

  • 12.9.2. Options de GROUP BY ............................................................. 61612.9.3. GROUP BY avec les champs cachés ............................................ 618

    13. Syntaxe des commandes SQL .......................................................................... 62013.1. Manipulation de données : SELECT, INSERT, UPDATE, DELETE .............. 620

    13.1.1. Syntaxe de DELETE ................................................................. 62013.1.2. Syntaxe de DO ......................................................................... 62213.1.3. Syntaxe de HANDLER ............................................................... 62213.1.4. Syntaxe de INSERT ................................................................. 62313.1.5. Syntaxe de LOAD DATA INFILE ............................................. 62913.1.6. Syntaxe de REPLACE ............................................................... 63613.1.7. Syntaxe de SELECT ................................................................. 63713.1.8. Sous-sélections (SubSELECT) ................................................... 64513.1.9. Syntaxe de TRUNCATE ............................................................. 65513.1.10. Syntaxe de UPDATE ............................................................... 655

    13.2. Définition de données : CREATE, DROP, ALTER ...................................... 65613.2.1. Syntaxe de ALTER DATABASE ................................................. 65613.2.2. Syntaxe de ALTER TABLE ....................................................... 65713.2.3. Syntaxe de CREATE DATABASE ............................................... 66113.2.4. Syntaxe de CREATE INDEX ..................................................... 66213.2.5. Syntaxe de CREATE TABLE ..................................................... 66213.2.6. Syntaxe de DROP DATABASE ................................................... 67313.2.7. Syntaxe de DROP INDEX ......................................................... 67413.2.8. Syntaxe de DROP TABLE ......................................................... 67413.2.9. Syntaxe de RENAME TABLE ..................................................... 675

    13.3. Commandes de bases de l'utilisateur de MySQL ....................................... 67513.3.1. Syntaxe de DESCRIBE (obtenir des informations sur les colonnes) ... 67513.3.2. Syntaxe de USE ....................................................................... 676

    13.4. Commandes relatives aux verrous et aux transactions ................................ 67713.4.1. Syntaxes de START TRANSACTION, COMMIT et ROLLBACK ........ 67713.4.2. Commandes qui ne peuvent pas être annulées ................................ 67713.4.3. Commandes qui peuvent causer une validation implicite .................. 67813.4.4. Syntaxe de SAVEPOINT et ROLLBACK TO SAVEPOINT ............. 67813.4.5. Syntaxe de LOCK TABLES/UNLOCK TABLES ........................... 67813.4.6. Syntaxe de SET TRANSACTION ............................................... 681

    13.5. Référence de langage d'administration de la base de données ...................... 68113.5.1. Commande de gestion des comptes utilisateurs .............................. 68113.5.2. Commandes d'entretien des tables ............................................... 68813.5.3. Syntaxe de SHOW ..................................................................... 69713.5.4. Autres commandes d'administration ............................................. 711

    13.6. Commandes de réplication ................................................................... 71513.6.1. Requêtes SQL pour contrôler les maîtres de réplication ................... 71513.6.2. Commandes SQL de contrôle des esclaves de réplication ................. 717

    13.7. Syntaxe SQL pour les commandes préparées ........................................... 72414. Moteurs de tables MySQL et types de table ........................................................ 727

    14.1. Le moteur de tables MyISAM ................................................................ 72814.1.1. Options de démarrage MyISAM .................................................. 73014.1.2. Espace nécessaire pour stocker les index ....................................... 73114.1.3. Formats de table MyISAM .......................................................... 73214.1.4. Problèmes avec les tables MyISAM .............................................. 734

    14.2. Tables assemblées MERGE .................................................................... 73614.2.1. Problèmes avec les tables MERGE ................................................ 738

    14.3. Le moteur de table MEMORY (HEAP) ...................................................... 73814.4. Tables BDB ou BerkeleyDB .............................................................. 740

    14.4.1. Systèmes d'exploitation supportés par BDB .................................... 74114.4.2. Installation de BDB ................................................................... 74114.4.3. Options de démarrage BDB ........................................................ 74214.4.4. Caractéristiques des tables BDB .................................................. 74314.4.5. Ce que nous devons corriger dans BDB dans un futur proche : ........... 74514.4.6. Restrictions avec les tables BDB .................................................. 74514.4.7. Erreurs pouvant survenir lors de l'utilisation des tables BDB ............. 745

    14.5. Le moteur de table EXAMPLE ............................................................... 74614.6. Le moteur de table FEDERATED ........................................................... 746

    14.6.1. Installation du moteur de table FEDERATED ................................. 746

    Manuel de référence MySQL

    x

  • 14.6.2. Description du moteur de stockage FEDERATED ........................... 74614.6.3. Comment utiliser les tables FEDERATED ..................................... 74714.6.4. Limitations du moteur de stockage FEDERATED ............................ 748

    14.7. Le moteur de table ARCHIVE ............................................................... 74914.8. Le moteur CSV ................................................................................... 74914.9. Tables ISAM ..................................................................................... 749

    15. Le moteur de tables InnoDB .......................................................................... 75215.1. Présentation des tables InnoDB ............................................................ 75215.2. Informations de contact InnoDB ........................................................... 75215.3. InnoDB avec MySQL version 3.23 ....................................................... 75215.4. Configuration InnoDB ........................................................................ 75315.5. Options de démarrage InnoDB ............................................................. 75715.6. Créer des bases InnoDB ...................................................................... 760

    15.6.1. Si quelque chose se passe mal à la création de la base de données ...... 76115.7. Créer des tables InnoDB ..................................................................... 761

    15.7.1. Comment utiliser les transactions de InnoDB avec différentes API ... 76215.7.2. Convertir des tables MyISAM vers InnoDB .................................. 76315.7.3. Comment les colonnes AUTO_INCREMENT fonctionnent avec InnoDB........................................................................................................ 76315.7.4. Contraintes de clés étrangères FOREIGN KEY .............................. 76415.7.5. InnoDB et la réplication MySQL ............................................... 76715.7.6. Espaces de tables multiples : chaque table InnoDB a son fichier .ibd 768

    15.8. Ajouter et retirer des données et des logs InnoDB .................................... 77015.9. Sauver et restaurer une base InnoDB ..................................................... 771

    15.9.1. Forcer la restauration ................................................................ 77215.9.2. Points de contrôle ..................................................................... 773

    15.10. Transférer une base de données InnoDB vers une autre machine ............... 77415.11. Modèle de transactions et verrouillage InnoDB ....................................... 774

    15.11.1. InnoDB et AUTOCOMMIT ....................................................... 77415.11.2. InnoDB et SET ... TRANSACTION ISOLATION LEVEL ... 77515.11.3. Lecture cohérente non-bloquante ............................................... 77615.11.4. Verrous de lecture SELECT ... FOR UPDATE et SELECT ...LOCK IN SHARE MODE ................................................................... 77615.11.5. Verrou de clé suivante : éviter le problème des lignes fantômes ....... 77715.11.6. Un exemple de lecture cohérente avec InnoDB ........................... 77815.11.7. Les verrous posés par différentes requêtes SQL avec InnoDB ........ 77815.11.8. Quand est-ce que MySQL valide ou annule implicitement unetransaction? ....................................................................................... 78015.11.9. Détection des blocages et annulation .......................................... 78015.11.10. Comment gérer les blocages de verrous? ................................... 780

    15.12. Conseils pour l'amélioration des performances InnoDB ........................... 78115.12.1. Le moniteur InnoDB .............................................................. 783

    15.13. Implémentation du multi-versionnage ................................................... 78715.14. Structures de tables et d'index .............................................................. 787

    15.14.1. Structure physique d'un index ................................................... 78815.14.2. Bufferisation des insertions ...................................................... 78815.14.3. Index hash adaptatifs ............................................................... 78815.14.4. Structure physique d'une ligne .................................................. 789

    15.15. Gestion de l'espace fichiers et des entrées/sorties disque ........................... 78915.15.1. Accès disques ........................................................................ 78915.15.2. Utiliser les raw devices pour l'espace de tables ............................. 79015.15.3. Gestion de l'espace fichier ........................................................ 79015.15.4. Défragmentation des tables ....................................................... 791

    15.16. Gestion des erreurs InnoDB ............................................................... 79115.16.1. Codes d'erreurs InnoDB ......................................................... 79215.16.2. Codes d'erreur sytème ............................................................. 792

    15.17. Restrictions sur les tables InnoDB ....................................................... 79715.18. Résolution de problèmes avec InnoDB ................................................. 799

    15.18.1. Solutions pour le dictionnaire de données InnoDB ....................... 79916. Introduction à MySQL Cluster ......................................................................... 801

    16.1. Présentation de MySQL Cluster ............................................................ 80116.2. Concepts de base de MySQL Cluster ...................................................... 80116.3. Configuration simple multi-serveurs ....................................................... 802

    Manuel de référence MySQL

    xi

  • 16.3.1. Matériel, logiciels et réseau ........................................................ 80416.3.2. Installation .............................................................................. 80416.3.3. Configuration .......................................................................... 80616.3.4. Démarrage initial ..................................................................... 80816.3.5. Charger les données d'exemple et exécuter des requêtes ................... 80916.3.6. Arrêt et redémarrage du cluster ................................................... 812

    16.4. Configuration de MySQL Cluster .......................................................... 81316.4.1. Compilation du cluster .............................................................. 81316.4.2. Installation du logiciel ............................................................... 81316.4.3. Vérification rapide du fonctionnement du cluster ............................ 81316.4.4. Fichier de configuration ............................................................ 816

    16.5. Serveur de gestion du cluster MySQL ..................................................... 83716.5.1. Utilisation des processus serveurs MySQL par MySQL Cluster .... 83716.5.2. ndbd, le processus de stockage du cluster .................................... 83716.5.3. ndb_mgmd, le serveur de gestion ................................................ 83916.5.4. ndb_mgm, le client de gestion du cluster ...................................... 84016.5.5. Options des commandes pour le cluster MySQL ............................ 840

    16.6. Administration de MySQL Cluster ......................................................... 84216.6.1. Commandes du client de gestion du Cluster ................................... 84216.6.2. Rapport d'événements générés par le cluster MySQL ...................... 84316.6.3. Utilisateur unique du cluster ....................................................... 84816.6.4. Sauvegarde en ligne de MySQL Cluster ....................................... 849

    16.7. Utilisation d'interconnexions haute vitesse avec MySQL Cluster .................. 85116.7.1. Configurer le cluster MySQL avec les sockets SCI ......................... 85216.7.2. Mesures de vitesses pour comprendre les impacts sur le cluster ......... 855

    16.8. Cluster Limitations in MySQL 4.1 ......................................................... 85616.9. Cluster MySQL en 5.0 et 5.1 ................................................................. 859

    16.9.1. Évolutions de MySQL Cluster en MySQL 5.0 ........................... 85916.9.2. Plans de développement de MySQL 5.1 pour le cluster MySQL ........ 860

    16.10. MySQL Cluster FAQ ......................................................................... 86016.11. MySQL Cluster Glossary ................................................................... 866

    17. Introduction à MaxDB ................................................................................... 87017.1. Historique de MaxDB .......................................................................... 87017.2. Licence et support MaxDB ................................................................... 87017.3. Liens traitant de MaxDB ....................................................................... 87017.4. Concepts de base de MaxDB ................................................................. 87017.5. Différences de fonctionnalités entre MaxDB et MySQL ............................. 87017.6. Interopérabilité entre MaxDB et MySQL ................................................. 87117.7. Mots réservés de MaxDB ...................................................................... 871

    18. Données spatiales avec MySQL ....................................................................... 87518.1. Introduction à GIS .............................................................................. 87518.2. Le modèle géométrique OpenGIS .......................................................... 876

    18.2.1. La hiérarchie des classes géométriques ......................................... 87618.2.2. Classe Geometry ................................................................... 87718.2.3. Classe Point ......................................................................... 87818.2.4. Classe Curve ......................................................................... 87818.2.5. Classe LineString ............................................................... 87918.2.6. Classe Surface ..................................................................... 87918.2.7. Classe Polygon ..................................................................... 87918.2.8. Classe GeometryCollection ............................................... 88018.2.9. Classe MultiPoint ............................................................... 88018.2.10. Classe MultiCurve ............................................................. 88118.2.11. Classe MultiLineString ................................................... 88118.2.12. Classe MultiSurface ......................................................... 88118.2.13. Classe MultiPolygon ......................................................... 881

    18.3. Formats géométriques supportés ............................................................ 88218.3.1. Format Well-Known Text (WKT) ............................................... 88218.3.2. Le format Well-Known Binary (WKB) ........................................ 883

    18.4. Créer une base de données avec les fonctionnalités géographiques ............... 88418.4.1. Types de données géographiques MySQL ..................................... 88418.4.2. Créer des objets géographiques ................................................... 88418.4.3. Créer des colonnes géométriques ................................................. 88818.4.4. Remplir des colonnes géométriques ............................................. 888

    Manuel de référence MySQL

    xii

  • 18.4.5. Lire des données géométriques ................................................... 88918.5. Analyser des données géographiques ...................................................... 890

    18.5.1. Fonctions pour convertir les formes de format ............................... 89018.5.2. Fonction d'analyse des propriétés des formes Geometry ................ 89118.5.3. Fonctions qui génèrent des formes géométriques à partir d'autres formes........................................................................................................ 89718.5.4. Fonctions de tests des relations géométriques entre les formes .......... 89818.5.5. Relations avec les Rectangles enveloppes (MBRs) .......................... 89818.5.6. Fonctions qui testent les relations géométriques entre les formes ....... 899

    18.6. Optimiser l'analyse géographique ........................................................... 90118.6.1. Créer un index géométrique ....................................................... 90118.6.2. Utiliser un index géométrique ..................................................... 902

    18.7. MySQL compatibilité avec GIS ............................................................. 90318.7.1. Les fonctionnalités de GIS que nous n'avons pas encore implémenté .. 903

    19. Procédures stockées et fonctions ...................................................................... 90519.1. Procédures stockées et tables de droits .................................................... 90519.2. Syntaxe des procédures stockées ............................................................ 906

    19.2.1. CREATE PROCEDURE et CREATE FUNCTION ........................... 90619.2.2. ALTER PROCEDURE et ALTER FUNCTION ............................... 90819.2.3. DROP PROCEDURE et DROP FUNCTION ................................... 90819.2.4. SHOW CREATE PROCEDURE et SHOW CREATE FUNCTION ....... 90819.2.5. SHOW PROCEDURE STATUS et SHOW FUNCTION STATUS ....... 90919.2.6. CALL ..................................................................................... 90919.2.7. La commande composée BEGIN ... END ................................. 90919.2.8. La commande DECLARE ........................................................... 90919.2.9. Les variables dans les procédures stockées .................................... 91019.2.10. Conditions et gestionnaires ....................................................... 91019.2.11. Curseurs ............................................................................... 91219.2.12. Instructions de contrôle ............................................................ 913

    20. Déclencheurs ................................................................................................ 91620.1. Syntaxe de CREATE TRIGGER ............................................................ 91620.2. Syntaxe de DROP TRIGGER ................................................................ 91720.3. Utiliser les déclencheurs ...................................................................... 917

    21. Vues ........................................................................................................... 92021.1. Syntaxe ALTER VIEW ........................................................................ 92021.2. Syntaxe de CREATE VIEW .................................................................. 92021.3. Syntaxe DROP VIEW .......................................................................... 92121.4. Syntaxe SHOW CREATE VIEW ............................................................ 921

    22. La base de données d'informations INFORMATION_SCHEMA ............................... 92222.1. Les tables INFORMATION_SCHEMA ..................................................... 923

    22.1.1. La table INFORMATION_SCHEMA SCHEMATA ........................... 92422.1.2. La table INFORMATION_SCHEMA TABLES ............................... 92422.1.3. La table INFORMATION_SCHEMA COLUMNS ............................. 92522.1.4. La table INFORMATION_SCHEMA STATISTICS ....................... 92722.1.5. La table INFORMATION_SCHEMA USER_PRIVILEGES ............. 92822.1.6. La table INFORMATION_SCHEMA SCHEMA_PRIVILEGES ......... 92822.1.7. La table INFORMATION_SCHEMA TABLE_PRIVILEGES ........... 92922.1.8. La table INFORMATION_SCHEMA COLUMN_PRIVILEGES ......... 92922.1.9. La table INFORMATION_SCHEMA CHARACTER_SETS ............... 93022.1.10. La table INFORMATION_SCHEMA COLLATIONS ..................... 93022.1.11. La table INFORMATION_SCHEMACOLLATION_CHARACTER_SET_APPLICABILITY ............................. 93122.1.12. La table INFORMATION_SCHEMA TABLE_CONSTRAINTS ....... 93122.1.13. La table INFORMATION_SCHEMA KEY_COLUMN_USAGE ......... 93222.1.14. La table INFORMATION_SCHEMA ROUTINES ......................... 93322.1.15. La table INFORMATION_SCHEMA VIEWS ............................... 93422.1.16. Autres tables INFORMATION_SCHEMA ..................................... 935

    22.2. Extensions à la commande SHOW ........................................................... 93523. Mathématiques de précision ............................................................................ 938

    23.1. Types de valeurs numériques ................................................................ 93823.2. Changements de type de données avec DECIMAL ..................................... 93923.3. Gestion des expressions ....................................................................... 94123.4. Arrondissement de valeurs ................................................................... 942

    Manuel de référence MySQL

    xiii

  • 23.5. Exemples de calculs de mathématiques ................................................... 94324. API MySQL ................................................................................................. 948

    24.1. Utilitaires de développement des programmes MySQL .............................. 94824.1.1. msql2mysql, convertit des programmes mSQL vers MySQL ......... 94824.1.2. mysql_config lit les options de compilations du client MySQL .... 948

    24.2. API MySQL C ................................................................................... 95024.2.1. Types de données de l'API C ...................................................... 95024.2.2. Vue d'ensemble des fonctions de l'API C ...................................... 95324.2.3. Description des fonctions de l'API C ............................................ 95624.2.4. Fonctions C de commandes préparées .......................................... 99524.2.5. Types de données de l'API C ...................................................... 99524.2.6. Présentation des fonctions de l'interface C ..................................... 99824.2.7. Description des fonctions C pour les requêtes préparées ................. 100024.2.8. Problèmes avec l'interface C des commandes préparées ................. 102124.2.9. Gestion des commandes multiples avec l'interface C ..................... 102124.2.10. Gestion des dates et horaires avec l'interface C ........................... 102224.2.11. Description des fonctions threadées de C .................................. 102324.2.12. Description des fonctions C du serveur embarqué ....................... 102424.2.13. Questions courantes sur la bibliothèque C ................................. 102524.2.14. Compiler les clients .............................................................. 102724.2.15. Comment faire un client MySQL threadé .................................. 102824.2.16. libmysqld, la bibliothèque du serveur embarqué MySQL ......... 1029

    24.3. API PHP pour MySQL ...................................................................... 103324.3.1. Problèmes fréquents avec MySQL et PHP .................................. 1034

    24.4. API Perl pour MySQL ....................................................................... 103424.5. Interface MySQL C++ ....................................................................... 1035

    24.5.1. Borland C++ ......................................................................... 103524.6. MySQL Python API .......................................................................... 103524.7. MySQL Tcl API ............................................................................... 103524.8. Couche MySQL pour Eiffel ................................................................ 1035

    25. Pilotes MySQL ........................................................................................... 103625.1. Support ODBC de MySQL ................................................................. 1036

    25.1.1. Introduction to MyODBC ........................................................ 103625.1.2. General Information About ODBC and MyODBC ........................ 103925.1.3. Comment installer MyODBC ................................................... 104125.1.4. Installer MyODBC depuis une distribution binaire sur Windows ..... 104225.1.5. Installing MyODBC from a Binary Distribution on Unix ............... 104225.1.6. Installer MyODBC depuis la version source sur Windows .............. 104325.1.7. Installing MyODBC from a Source Distribution on Unix ............... 104525.1.8. Installer MyODBC depuis le serveur de versions BitKeeper ........... 105025.1.9. MyODBC Configuration ......................................................... 105125.1.10. Problèmes avec les connexions MyODBC ................................. 106925.1.11. MyODBC et Microsoft Access ................................................ 106925.1.12. MyODBC et Microsoft VBA et ASP ........................................ 107425.1.13. MyODBC et les outils tierce partie .......................................... 107625.1.14. Fonctionnalités générales de MyODBC .................................... 107725.1.15. Instructions de base pour utiliser MyODBC ............................... 108125.1.16. Table de référence MyODBC ................................................. 108225.1.17. MyODBC Data Types ........................................................... 108725.1.18. Codes d'erreurs MyODBC ...................................................... 108825.1.19. MyODBC avec VB : ADO, DAO and RDO .............................. 108925.1.20. MyODBC avec Microsoft .NET .............................................. 109325.1.21. Crédits ............................................................................... 1096

    25.2. MySQL et Java (JDBC) ..................................................................... 109626. Gestion des erreurs avec MySQL ................................................................... 109827. Etendre MySQL .......................................................................................... 1131

    27.1. Rouages de MySQL .......................................................................... 113127.1.1. Threads MySQL .................................................................... 113127.1.2. Suite de test de MySQL ........................................................... 1131

    27.2. Ajouter des fonctions à MySQL .......................................................... 113427.2.1. Fonctionnalités des fonctions utilisateur ..................................... 113427.2.2. Syntaxe de CREATE FUNCTION/DROP FUNCTION ................. 113527.2.3. Ajouter une nouvelle fonction définie par l'utilisateur (UDF) ........... 1135

    Manuel de référence MySQL

    xiv

  • 27.2.4. Ajouter de nouvelles fonctions natives ....................................... 114327.3. Ajouter une nouvelle procédure à MySQL ............................................. 1144

    27.3.1. La procédure Analyse ............................................................. 114527.3.2. Ecrire une procédure ............................................................... 1145

    A. Problèmes et erreurs communes ...................................................................... 1146A.1. Comment déterminer ce qui pose problème ............................................ 1146A.2. Erreurs communes rencontrées avec MySQL .......................................... 1147

    A.2.1. Erreur Access denied ........................................................ 1147A.2.2. Erreur Can't connect to [local] MySQL server ........ 1147A.2.3. Erreur Client does not support authenticationprotocol ..................................................................................... 1149A.2.4. Echec de saisie du mot de passe avec le client interactif .................. 1150A.2.5. Erreur Host '...' is blocked ........................................ 1150A.2.6. Erreur Too many connections .......................................... 1150A.2.7. Erreur Out of memory ........................................................ 1151A.2.8. Erreur MySQL server has gone away .............................. 1151A.2.9. Erreur Packet too large .................................................. 1152A.2.10. Erreurs de communication / Connexion annulée .......................... 1153A.2.11. Erreur The table is full ............................................... 1154A.2.12. Erreur Can't create/write to file ............................. 1155A.2.13. Erreur du client Commands out of sync ............................ 1155A.2.14. Erreur Ignoring user ....................................................... 1155A.2.15. Erreur Table 'xxx' doesn't exist ............................... 1156A.2.16. Erreur Can't initialize character set xxx ............. 1156A.2.17. Fichier non trouvé ................................................................. 1157

    A.3. Notes relatives à l'installation ............................................................... 1158A.3.1. Problèmes lors de la liaison avec la bibliothèque du client MySQL ... 1158A.3.2. Comment exécuter MySQL comme un utilisateur normal ............... 1159A.3.3. Problèmes avec les permissions sur fichiers .................................. 1159

    A.4. Notes relatives à l'administration .......................................................... 1160A.4.1. Comment réinitialiser un mot de passe Root oublié ........................ 1160A.4.2. Que faire si MySQL plante constamment ? .................................. 1162A.4.3. Comment MySQL gère un disque plein ....................................... 1164A.4.4. Où MySQL stocke les fichiers temporaires ? ................................ 1165A.4.5. Comment protéger ou changer le fichier socket /tmp/mysql.sock 1165A.4.6. Problèmes de fuseaux horaires ................................................... 1166

    A.5. Problèmes relatifs aux requêtes ............................................................ 1166A.5.1. Sensibilité à la casse dans les recherches ...................................... 1166A.5.2. Problèmes avec l'utilisation des colonnes DATE ............................ 1167A.5.3. Problèmes avec les valeurs NULL ............................................... 1168A.5.4. Problèmes avec les alias ....................................................... 1169A.5.5. Erreur Some non-transactional changed tables couldn'tbe rolled back ......................................................................... 1169A.5.6. Effacer des lignes de tables reliées .............................................. 1170A.5.7. Résoudre les problèmes des lignes non retournées ......................... 1170A.5.8. Problèmes de comparaisons avec nombres à virgule flottante ........... 1171

    A.6. Problèmes liés à l'optimiseur ................................................................ 1173A.7. Questions relatives aux définitions de tables ........................................... 1173

    A.7.1. Problèmes avec ALTER TABLE. ............................................... 1174A.7.2. Comment changer l'ordre des colonnes dans une table .................... 1174A.7.3. Problèmes avec les tables temporaires ......................................... 1175

    B. Crédits ....................................................................................................... 1176B.1. Développeurs chez MySQL AB ............................................................ 1176B.2. Contributeurs à MySQL ...................................................................... 1180B.3. Documenteurs et traducteurs ................................................................ 1184B.4. Bibliothèques utilisées et incluses dans MySQL ...................................... 1185B.5. Applications qui supportent MySQL ..................................................... 1186B.6. Outils utilisés pour créer MySQL .......................................................... 1187B.7. Supporters de MySQL ........................................................................ 1187B.8. Les évolutions de MySQL (la liste des tâches) ......................................... 1188

    B.8.1. Nouvelles fonctionnalités prévues pour la version 5.0 ..................... 1188B.8.2. Nouvelles fonctionnalités prévues pour 5.1 .................................. 1189B.8.3. Ce qui doit être fait dans un futur proche ...................................... 1189

    Manuel de référence MySQL

    xv

  • B.8.4. Ce qui est prévu à moyen terme ................................................. 1192B.8.5. Ce qui n'est pas prévu .............................................................. 1193

    C. Historique des changements MySQL ............................................................... 1194C.1. Changements de la version 5.0.0 (Développement) ................................... 1194

    C.1.1. Changements de la version 5.0.6 (pas encore publiée) .................... 1194C.1.2. Changements de la version 5.0.5 (Bientôt publiée) ......................... 1195C.1.3. Changements de la version 5.0.4 (16 avril 2005) ........................... 1197C.1.4. Changements de la version 5.0.3 (23 mars 2005 : Beta) .................. 1200C.1.5. Changements de la version 5.0.2 (1er Décembre 2004) ................... 1210C.1.6. Changements de la version 5.0.1 (pas encore publiée) .................... 1212C.1.7. Changements de la version 5.0.0 (22 décembre 2003 : Alpha) .......... 1214

    C.2. Changements de la version 4.1.x (Alpha) ................................................ 1214C.2.1. Changements de la version 4.1.12 (Pas encore publiée) ................... 1215C.2.2. Changements de la version 4.1.11 (1 avril 2005) ........................... 1217C.2.3. Changements de la version 4.1.10 (12 février 2005) ....................... 1224C.2.4. Changements de la version 4.1.9 (11 Janvier 2005) ........................ 1228C.2.5. Changements de la version 4.1.8 (14 Décembre 2004) .................... 1230C.2.6. Changements de la version 4.1.7 (bientôt publiée) ......................... 1231C.2.7. Changements de la version 4.1.6 (10 Octobre 2004) ....................... 1232C.2.8. Changements de la version 4.1.4 (16 Septembre 2004) ................... 1233C.2.9. Changements de la version 4.1.4 (26 Août 2004) ........................... 1234C.2.10. Changements de la version 4.1.3 (pas encore publiée) ................... 1237C.2.11. Changements de la version 4.1.2 ............................................... 1237C.2.12. Changements de la version 4.1.1 (01 décembre 2003) ................... 1245C.2.13. Changements de la version 4.1.0 (03 Avril 2003 : alpha) ............... 1250

    C.3. Changements de la version 4.0.x (Production) ......................................... 1253C.3.1. Changements de la version 4.0.25 (pas encore publié) .................... 1254C.3.2. Changements de la version 4.0.24 (04 Mars 2005) ......................... 1255C.3.3. Changements de la version 4.0.23 (18 Décembre 2004) .................. 1257C.3.4. Changements de la version 4.0.22 (27 Octobre 2004) ..................... 1259C.3.5. Changements de la version 4.0.21 ............................................... 1260C.3.6. Changements de la version 4.0.20 ............................................... 1260C.3.7. Changements de la version 4.0.19 (04 mai 2004) ........................... 1261C.3.8. Changements de la version 4.0.18 (pas encore publiée) ................... 1264C.3.9. Changements de la version 4.0.17 (14 décembre 2003) ................... 1267C.3.10. Changements de la version 4.0.16 (17 octobre 2003) .................... 1270C.3.11. Changements de la version 4.0.15 (03 septembre 2003) ................. 1272C.3.12. Changements de la version 4.0.14 (18 juillet 2003) ...................... 1276C.3.13. Changements de la version 4.0.13 (16 Mai 2003) ......................... 1280C.3.14. Changements de la version 4.0.12 (15 Mars 2003 : Production) ...... 1284C.3.15. Changements de la version 4.0.11 (20 Février 2003) ..................... 1285C.3.16. Changements de la version 4.0.10 (29 janvier 2003) ..................... 1286C.3.17. Changements de la version 4.0.9 (09 janvier 2003) ....................... 1288C.3.18. Changements de la version 4.0.8 (07 janvier 2003) ....................... 1288C.3.19. Changements de la version 4.0.7 (20 Décembre 2002) .................. 1289C.3.20. Changements de la version 4.0.6 (14 Décembre 2002 : Gamma) ..... 1289C.3.21. Changements de la version 4.0.5 (13 novembre 2002) ................... 1291C.3.22. Changements de la version 4.0.4 (29 septembre 2002) .................. 1293C.3.23. Changements de la version 4.0.3 (26 Août 2002 : Beta) ................. 1294C.3.24. Changements de la version 4.0.2 (01 Juillet 2002) ........................ 1296C.3.25. Changements de la version 4.0.1 (23 décembre 2001) ................... 1300C.3.26. Changements de la version 4.0.0 (Octobre 2001 : alpha) ............... 1301

    C.4. Changements de la version 3.23.x (Recent; still supported) ........................ 1303C.4.1. Changements de la version 3.23.59 (not released yet) ..................... 1304C.4.2. Changements de la version 3.23.58 (11 septembre 2003) ................. 1304C.4.3. Changements de la version 3.23.57 (06 juin 2003) ......................... 1305C.4.4. Changements de la version 3.23.56 (13 mars 2003) ........................ 1306C.4.5. Changements de la version 3.23.55 (23 janvier 2003) ..................... 1307C.4.6. Changements de la version 3.23.54 (05 décembre 2002) ................. 1308C.4.7. Changements de la version 3.23.53 (09 octobre 2002) .................... 1309C.4.8. Changements de la version 3.23.52 (14 août 2002) ........................ 1309C.4.9. Changements de la version 3.23.51 (31 mai 2002) ......................... 1310C.4.10. Changements de la version 3.23.50 (21 avril 2002) ...................... 1311

    Manuel de référence MySQL

    xvi

  • C.4.11. Changements de la version 3.23.49 ........................................... 1312C.4.12. Changements de la version 3.23.48 (07 février 2002) .................... 1312C.4.13. Changements de la version 3.23.47 (27 décembre 2001) ................ 1313C.4.14. Changements de la version 3.23.46 (29 novembre 2001) ............... 1314C.4.15. Changements de la version 3.23.45 (22 novembre 2001) ............... 1314C.4.16. Changements de la version 3.23.44 (31 octobre 2001) ................... 1315C.4.17. Changements de la version 3.23.43 (04 octobre 2001) ................... 1316C.4.18. Changements de la version 3.23.42 (08 septembre 2001) ............... 1316C.4.19. Changements de la version 3.23.41 (11 août 2001) ....................... 1317C.4.20. Changements de la version 3.23.40 ........................................... 1318C.4.21. Changements de la version 3.23.39 (12 juin 2001) ....................... 1319C.4.22. Changements de la version 3.23.38 (09 mai 2001) ........................ 1319C.4.23. Changements de la version 3.23.37 (17 avril 2001) ...................... 1320C.4.24. Changements de la version 3.23.36 (27 mars 2001) ...................... 1321C.4.25. Changements de la version 3.23.35 (15 mars 2001) ...................... 1321C.4.26. Changements de la version 3.23.34a .......................................... 1322C.4.27. Changements de la version 3.23.34 (10 mars 2001) ...................... 1322C.4.28. Changements de la version 3.23.33 (09 février 2001) .................... 1323C.4.29. Changements de la version 3.23.32 (22 Jan 2001: Production) ........ 1324C.4.30. Changements de la version 3.23.31 (17 janvier 2001) ................... 1325C.4.31. Changements de la version 3.23.30 (04 janvier 2001) ................... 1325C.4.32. Changements de la version 3.23.29 (16 décembre 2000) ................ 1326C.4.33. Changements de la version 3.23.28 (22 Nov 2000: Gamma) .......... 1328C.4.34. Changements de la version 3.23.27 (24 octobre 2000) ................... 1330C.4.35. Changements de la version 3.23.26 (18 octobre 2000) ................... 1330C.4.36. Changements de la version 3.23.25 (29 septembre 2000) ............... 1331C.4.37. Changements de la version 3.23.24 (08 septembre 2000) ............... 1332C.4.38. Changements de la version 3.23.23 (01 septembre 2000) ............... 1333C.4.39. Changements de la version 3.23.22 (31 juillet 2000) ..................... 1334C.4.40. Changements de la version 3.23.21 ........................................... 1335C.4.41. Changements de la version 3.23.20 ........................................... 1335C.4.42. Changements de la version 3.23.19 ........................................... 1336C.4.43. Changements de la version 3.23.18 ........................................... 1336C.4.44. Changements de la version 3.23.17 ........................................... 1336C.4.45. Changements de la version 3.23.16 ........................................... 1337C.4.46. Changements de la version 3.23.15 (May 2000: Beta) ................... 1338C.4.47. Changements de la version 3.23.14 ........................................... 1339C.4.48. Changements de la version 3.23.13 ........................................... 1339C.4.49. Changements de la version 3.23.12 (07 mars 2000) ...................... 1340C.4.50. Changements de la version 3.23.11 ........................................... 1341C.4.51. Changements de la version 3.23.10 ........................................... 1341C.4.52. Changements de la version 3.23.9 ............................................. 1341C.4.53. Changements de la version 3.23.8 (02 janvier 2000) ..................... 1342C.4.54. Changements de la version 3.23.7 (10 décembre 1999) ................. 1343C.4.55. Changements de la version 3.23.6 ............................................. 1344C.4.56. Changements de la version 3.23.5 (20 octobre 1999) .................... 1344C.4.57. Changements de la version 3.23.4 (28 septembre 1999) ................. 1345C.4.58. Changements de la version 3.23.3 ............................................. 1346C.4.59. Changements de la version 3.23.2 (09 août 1999) ........................ 1346C.4.60. Changements de la version 3.23.1 ............................................. 1347C.4.61. Changements de la version 3.23.0 (05 Aug 1999: Alpha) ............... 1347

    C.5. Changements de la version 3.22.x (Old; discontinued) .............................. 1350C.5.1. Changements de la version 3.22.35 ............................................. 1350C.5.2. Changements de la version 3.22.34 ............................................. 1350C.5.3. Changements de la version 3.22.33 ............................................. 1350C.5.4. Changements de la version 3.22.32 (14 février 2000) ..................... 1350C.5.5. Changements de la version 3.22.31 ............................................. 1350C.5.6. Changements de la version 3.22.30 ............................................. 1351C.5.7. Changements de la version 3.22.29 (02 janvier 2000) ..................... 1351C.5.8. Changements de la version 3.22.28 (20 octobre 1999) .................... 1351C.5.9. Changements de la version 3.22.27 ............................................. 1351C.5.10. Changements de la version 3.22.26 (16 septembre 1999) ............... 1352C.5.11. Changements de la version 3.22.25 ........................................... 1352

    Manuel de référence MySQL

    xvii

  • C.5.12. Changements de la version 3.22.24 (05 juillet 1999) ..................... 1352C.5.13. Changements de la version 3.22.23 (08 juin 1999) ....................... 1352C.5.14. Changements de la version 3.22.22 (30 avril 1999) ...................... 1353C.5.15. Changements de la version 3.22.21 ........................................... 1353C.5.16. Changements de la version 3.22.20 (18 mars 1999) ...................... 1354C.5.17. Changements de la version 3.22.19 (Mar 1999: Production) ........... 1354C.5.18. Changements de la version 3.22.18 ........................................... 1354C.5.19. Changements de la version 3.22.17 ........................................... 1354C.5.20. Changements de la version 3.22.16 (Feb 1999: Gamma) ............... 1354C.5.21. Changements de la version 3.22.15 ........................................... 1355C.5.22. Changements de la version 3.22.14 ........................................... 1355C.5.23. Changements de la version 3.22.13 ........................................... 1355C.5.24. Changements de la version 3.22.12 ........................................... 1356C.5.25. Changements de la version 3.22.11 ........................................... 1356C.5.26. Changements de la version 3.22.10 ........................................... 1357C.5.27. Changements de la version 3.22.9 ............................................. 1358C.5.28. Changements de la version 3.22.8 ............................................. 1358C.5.29. Changements de la version 3.22.7 (Sep 1998: Beta) ...................... 1359C.5.30. Changements de la version 3.22.6 ............................................. 1359C.5.31. Changements de la version 3.22.5 ............................................. 1359C.5.32. Changements de la version 3.22.4 ............................................. 1361C.5.33. Changements de la version 3.22.3 ............................................. 1362C.5.34. Changements de la version 3.22.2 ............................................. 1362C.5.35. Changements de la version 3.22.1 (Jun 1998: Alpha) .................... 1362C.5.36. Changements de la version 3.22.0 ............................................. 1363

    C.6. Changements de la version 3.21.x ......................................................... 1364C.6.1. Changements de la version 3.21.33 ............................................. 1364C.6.2. Changements de la version 3.21.32 ............................................. 1365C.6.3. Changements de la version 3.21.31 ............................................. 1365C.6.4. Changements de la version 3.21.30 ............................................. 1365C.6.5. Changements de la version 3.21.29 ............................................. 1366C.6.6. Changements de la version 3.21.28 ............................................. 1366C.6.7. Changements de la version 3.21.27 ............................................. 1366C.6.8. Changements de la version 3.21.26 ............................................. 1367C.6.9. Changements de la version 3.21.25 ............................................. 1367C.6.10. Changements de la version 3.21.24 ........................................... 1367C.6.11. Changements de la version 3.21.23 ........................................... 1368C.6.12. Changements de la version 3.21.22 ........................................... 1368C.6.13. Changements de la version 3.21.21a .......................................... 1369C.6.14. Changements de la version 3.21.21 ........................................... 1369C.6.15. Changements de la version 3.21.20 ........................................... 1369C.6.16. Changements de la version 3.21.19 ........................................... 1370C.6.17. Changements de la version 3.21.18 ........................................... 1370C.6.18. Changements de la version 3.21.17 ........................................... 1370C.6.19. Changements de la version 3.21.16 ........................................... 1371C.6.20. Changements de la version 3.21.15 ........................................... 1371C.6.21. Changements de la version 3.21.14b .......................................... 1372C.6.22. Changements de la version 3.21.14a .......................................... 1372C.6.23. Changements de la version 3.21.13 ........................................... 1372C.6.24. Changements de la version 3.21.12 ........................................... 1373C.6.25. Changements de la version 3.21.11 ........................................... 1374C.6.26. Changements de la version 3.21.10 ........................................... 1374C.6.27. Changements de la version 3.21.9 ............................................. 1375C.6.28. Changements de la version 3.21.8 ............................................. 1375C.6.29. Changements de la version 3.21.7 ............................................. 1375C.6.30. Changements de la version 3.21.6 ............................................. 1376C.6.31. Changements de la version 3.21.5 ............................................. 1376C.6.32. Changements de la version 3.21.4 ............................................. 1376C.6.33. Changements de la version 3.21.3 ............................................. 1376C.6.34. Changements de la version 3.21.2 ............................................. 1377C.6.35. Changements de la version 3.21.0 ............................................. 1378

    C.7. Changements de la version 3.20.x ......................................................... 1379C.7.1. Changements de la version 3.20.18 ............................................. 1379

    Manuel de référence MySQL

    xviii

  • C.7.2. Changements de la version 3.20.17 ............................................. 1380C.7.3. Changements de la version 3.20.16 ............................................. 1381C.7.4. Changements de la version 3.20.15 ............................................. 1381C.7.5. Changements de la version 3.20.14 ............................................. 1381C.7.6. Changements de la version 3.20.13 ............................................. 1382C.7.7. Changements de la version 3.20.11 ............................................. 1382C.7.8. Changements de la version 3.20.10 ............................................. 1383C.7.9. Changements de la version 3.20.9 ............................................... 1383C.7.10. Changements de la version 3.20.8 ............................................. 1383C.7.11. Changements de la version 3.20.7 ............................................. 1383C.7.12. Changements de la version 3.20.6 .......