1438
Manuel de référence MySQL 5.0

Refman 5.0 Fr.a4

Embed Size (px)

Citation preview

Manuel de rfrence MySQL 5.0

Manuel de rfrence MySQL 5.0This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com [http://dev.mysql.com/doc/mysql/en]. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version. Rsum Document generated on: 2006-12-13 (version: 144)Copyright 1997-2006 MySQL AB This documentation is NOT distributed under a GPL license. Use of this documentation is subject to the following terms: You may create a printed copy of this documentation solely for your own personal use. Conversion to other formats is allowed as long as the actual content is not altered or edited in any way. You shall not publish or distribute this documentation in any form or on any media, except if you distribute the documentation in a manner similar to how MySQL disseminates it (that is, electronically for download on a website with the software) or on a CD-ROM or similar medium, provided however that the documentation is disseminated together with the software on the same medium. Any other use, such as any dissemination of printed copies or use of this documentation, in whole or in part, in another publication, requires the prior written consent from an authorized representative of MySQL AB. MySQL AB reserves any and all rights to this documentation not expressly granted above. Please email for more information or if you are interested in doing a translation.

Table des matiresPreface ..............................................................................................................xxi 1. Informations gnrales ........................................................................................ 1 1.1. A propos du manuel ................................................................................. 2 1.1.1. Conventions utilises dans ce manuel ............................................... 2 1.2. Prsentation du systme de bases de donnes MySQL .................................... 4 1.2.1. Histoire de MySQL ....................................................................... 5 1.2.2. Les fonctionnalits principales de MySQL ......................................... 5 1.2.3. Jusqu' quel point MySQL est il stable ? ........................................... 8 1.2.4. Quelles tailles peuvent atteindre les tables MySQL .............................. 9 1.2.5. Compatibilit an 2000 ...................................................................10 1.3. Plan de dveloppement de MySQL ............................................................11 1.3.1. MySQL 4.0 en bref ......................................................................12 1.3.2. MySQL 4.1 en bref ......................................................................13 1.3.3. MySQL 5.0, les prochains dveloppements .......................................15 1.4. Sources d'informations MySQL ................................................................15 1.4.1. Listes de diffusion MySQL ............................................................15 1.4.2. Support de la communaut MySQL sur IRC (Internet Relay Chat) ........22 1.4.3. Support de la communaut MySQL sur les forums MySQL .................23 1.5. Quels standards respecte MySQL ? ............................................................23 1.5.1. Quels standards suit MySQL ? .......................................................24 1.5.2. Slectionner les modes SQL ..........................................................24 1.5.3. Excuter MySQL en mode ANSI ....................................................24 1.5.4. Extensions MySQL au standard SQL-92 ..........................................24 1.5.5. Diffrences entre MySQL et le standard SQL-92 ...............................27 1.5.6. Comment MySQL gre les contraintes .............................................33 1.5.7. Erreurs connues, et limitations de MySQL ........................................35 2. Installer MySQL ...............................................................................................41 2.1. Notes gnrales propos de l'installation ....................................................41 2.1.1. Systmes d'exploitation supports par MySQL ..................................41 2.1.2. Choisir votre version de MySQL ....................................................43 2.1.3. Comment obtenir MySQL ? ...........................................................54 2.1.4. Vrifier l'intgrit des paquets avec MD5 ou GnuPG ...........................54 2.1.5. Dispositions d'installation ..............................................................57 2.2. Installation standard rapide de MySQL .......................................................58 2.2.1. Installer MySQL sous Windows .....................................................58 2.2.2. Choisir un paquet d'installation .......................................................59 2.2.3. Installer MySQL avec l'assistant automatique ....................................60 2.2.4. Installation de MySQL avec l'assistant .............................................60 2.2.5. Utiliser l'assistant de configuration ..................................................63 2.2.6. Installer MySQL partir d'une archive ZIP sans assistant ....................68 2.2.7. Extraction de l'archive d'installation ................................................68 2.2.8. Crer un fichier d'options ..............................................................68 2.2.9. Dmarrer MySQL depuis la ligne de commande Windows ..................71 2.2.10. Tester son installation MySQL .....................................................74 2.2.11. Mettre jour MySQL sous Windows .............................................76 2.2.12. Installer MySQL sous Linux ........................................................79 2.2.13. Installer MySQL sur Mac OS X ....................................................81 2.2.14. Installer MySQL sur NetWare ......................................................84 2.3. Installer MySQL sur d'autres systmes type Linux ........................................85 2.4. Installation de MySQL avec une distribution source ......................................88 2.4.1. Installation depuis les sources : prsentation ......................................89 2.4.2. Options habituelles de configure ................................................91 2.4.3. Installer partir de l'arbre source de dveloppement ...........................94 2.4.4. Problmes de compilation? ............................................................97 2.4.5. Notes relatives aux MIT-pthreads ............................................ 100 2.4.6. La distribution source Windows ................................................... 101 2.4.7. Compiler les clients MySQL sous Windows .................................... 105 iv

Manuel de rfrence MySQL 5.0

2.5. Procdure de post-installation ................................................................. 105 2.5.1. Post-installation sous Windows .................................................... 105 2.5.2. Procdures de post-installation sous Unix ....................................... 106 2.5.3. Cration des premiers droits MySQL ............................................. 116 2.6. Changer de version de MySQL ............................................................... 119 2.6.1. Passer en de version 4.1 en version 5.0 ........................................... 120 2.6.2. Passer de la version 4.0 la version 4.1 .......................................... 120 2.6.3. Passer de la version 3.23 la version 4.0 ........................................ 124 2.6.4. Passer de la version 3.22 la version 3.23 ...................................... 128 2.6.5. Passer de la version 3.21 la version 3.22 ...................................... 129 2.6.6. Passer de la version 3.20 la version 3.21 ...................................... 130 2.6.7. Mise jour des tables de droits ..................................................... 131 2.6.8. Migrer depuis une autre architecture .............................................. 132 2.7. Rduire de version de MySQL ................................................................ 133 2.7.1. Revenir en version 4.1 ................................................................ 133 2.7.2. Revenir en version 4.0 ................................................................ 134 2.8. Notes spcifiques aux systmes d'exploitation ............................................ 134 2.8.1. Notes relatives Linux (toutes versions) ........................................ 134 2.8.2. Notes relatives Mac OS X ......................................................... 142 2.8.3. Notes pour Solaris ...................................................................... 142 2.8.4. Notes relatives BSD ................................................................. 146 2.8.5. Notes sur les autres Unix ............................................................. 149 2.8.6. Notes relatives OS/2 ................................................................ 157 2.8.7. Notes relatives BeOS ............................................................... 158 2.9. Commentaires sur l'installation de Perl ..................................................... 158 2.9.1. Installer Perl sur Unix ................................................................. 158 2.9.2. Installer ActiveState Perl sur Windows .......................................... 159 2.9.3. Problmes lors de l'utilisation des interfaces Perl DBI et DBD ............. 160 3. Tutoriels d'introduction .................................................................................... 163 3.1. Connexion et dconnexion au serveur ...................................................... 163 3.2. Entrer des requtes ............................................................................... 164 3.3. Cration et utilisation d'une base de donnes .............................................. 166 3.3.1. Crer et slectionner une base de donnes ....................................... 167 3.3.2. Cration d'une table .................................................................... 168 3.3.3. Charger des donnes dans une table ............................................... 169 3.3.4. Rcuprer des informations partir d'une table ................................ 170 3.4. Obtenir des informations propos des bases de donnes et des tables ............. 182 3.5. Utilisation de mysql en mode batch ........................................................ 183 3.6. Exemples de requtes usuelles ................................................................ 184 3.6.1. La valeur maximale d'une colonne ................................................ 185 3.6.2. La ligne contenant le maximum d'une certaine colonne ..................... 185 3.6.3. Maximum d'une colonne par groupe .............................................. 186 3.6.4. La ligne contenant la plus grande valeur d'un certain champ par rapport un groupe ............................................................................................. 186 3.6.5. Utiliser les variables utilisateur ..................................................... 187 3.6.6. Utiliser les clefs trangres .......................................................... 187 3.6.7. Recherche sur deux clefs ............................................................. 188 3.6.8. Calcul du nombre de visites par jour .............................................. 189 3.6.9. Utiliser AUTO_INCREMENT ........................................................ 189 3.7. Requtes du projet Twin ........................................................................ 190 3.7.1. Trouver tous les jumeaux rpondant aux critres .............................. 190 3.7.2. Afficher une table avec l'tat des paires de jumeaux .......................... 192 3.8. Utilisation de MySQL avec Apache ......................................................... 193 4. Utiliser les programmes MySQL ........................................................................ 194 4.1. Prsentation des logiciels MySQL ........................................................... 194 4.2. Appeler des programmes MySQL ............................................................ 195 4.3. Spcifier des options aux programmes ...................................................... 195 4.3.1. Options de ligne de commande de mysqld .................................... 196 4.3.2. Fichier d'options my.cnf ........................................................... 197 4.3.3. Utiliser les variables d'environnement pour spcifier des options ......... 200 4.3.4. Utiliser les options pour configurer des variables de programme ......... 201 5. Administration du serveur ................................................................................ 203 5.1. Scripts serveur MySQL et utilitaires ......................................................... 203 v

Manuel de rfrence MySQL 5.0

5.1.1. Prsentation des scripts serveurs et des utilitaires ............................. 203 5.1.2. mysqld-max, la version tendue du serveur mysqld ..................... 204 5.1.3. safe_mysqld, le script pre de mysqld ..................................... 206 5.1.4. Le script de dmarrage mysql.server ....................................... 209 5.1.5. mysqld_multi, un programme pour grer plusieurs serveurs MySQL 209 5.2. Configuration de MySQL ...................................................................... 213 5.2.1. Options de ligne de commande de mysqld .................................... 213 5.2.2. Le mode SQL du serveur ............................................................. 222 5.2.3. Variables serveur systme ........................................................... 226 5.2.4. Variables de statut du serveur ....................................................... 247 5.3. Le processus d'extinction de MySQL ....................................................... 253 5.4. Scurit gnrale du serveur ................................................................... 254 5.4.1. Guide de scurit ....................................................................... 255 5.4.2. Protger MySQL contre les attaques .............................................. 257 5.4.3. Options de dmarrage qui concernent la scurit .............................. 259 5.4.4. Problmes de scurit avec LOAD DATA LOCAL .......................... 260 5.5. Rgles de scurit et droits d'accs au serveur MySQL ................................ 260 5.5.1. Rle du systme de privilges ...................................................... 260 5.5.2. Comment fonctionne le systme de droits ....................................... 261 5.5.3. Droits fournis par MySQL ........................................................... 264 5.5.4. Se connecter au serveur MySQL ................................................... 266 5.5.5. Contrle d'accs, tape 1 : Vrification de la connexion ..................... 268 5.5.6. Contrle d'accs, tape 2 : Vrification de la requte ......................... 271 5.5.7. Quand les modifications de privilges prennent-ils effets ? ................ 273 5.5.8. Causes des erreurs Access denied ........................................... 274 5.5.9. Hashage de mots de passe en MySQL 4.1 ....................................... 278 5.6. Gestion des comptes utilisateurs de MySQL .............................................. 283 5.6.1. Nom d'utilisateurs MySQL et mots de passe .................................... 283 5.6.2. Ajouter de nouveaux utilisateurs MySQL ..................................... 284 5.6.3. Supprimer un compte utilisateur de MySQL .................................... 287 5.6.4. Limiter les ressources utilisateurs .................................................. 287 5.6.5. Configurer les mots de passe ........................................................ 288 5.6.6. Garder vos mots de passe en lieu sr .............................................. 289 5.6.7. Utilisation des connexions scurises ............................................. 290 5.7. Prvention des dsastres et restauration .................................................... 297 5.7.1. Sauvegardes de base de donnes ................................................... 297 5.7.2. Exemples de stratgie de sauvegarde et restauration ......................... 298 5.7.3. Utilisation de myisamchk pour la maintenance des tables et leur recouvrement .................................................................................... 302 5.7.4. Mettre en place un rgime d'entretien de MySQL ............................. 313 5.7.5. Obtenir des informations sur une table ........................................... 314 5.8. Localisation MySQL et utilisation internationale ........................................ 318 5.8.1. Le jeu de caractres utilis pour les donnes et le stockage ................. 318 5.8.2. Langue des messages d'erreurs ..................................................... 320 5.8.3. Ajouter un nouveau jeu de caractres ............................................. 320 5.8.4. Le tableau de dfinition des caractres ........................................... 322 5.8.5. Support d'assemblage des chanes ................................................. 322 5.8.6. Support des caractres multi-octets ................................................ 322 5.8.7. Problmes avec les jeux de caractres ............................................ 323 5.8.8. Support des fuseaux horaires avec MySQL ..................................... 323 5.9. Les fichiers de log de MySQL ................................................................ 324 5.9.1. Le log d'erreurs ......................................................................... 325 5.9.2. Le log gnral de requtes ........................................................... 325 5.9.3. Le log de modification ................................................................ 326 5.9.4. Le log binaire ............................................................................ 326 5.9.5. Le log des requtes lentes ............................................................ 329 5.9.6. Entretien des fichiers de log ......................................................... 329 5.10. Faire fonctionner plusieurs serveurs MySQL sur la mme machine .............. 330 5.10.1. Utiliser plusieurs serveurs MySQL un serveur Windows .................. 332 5.10.2. Utiliser plusieurs serveurs sous Unix ............................................ 334 5.10.3. Utiliser les clients dans un environnement multi-serveur .................. 336 5.11. Cache de requtes MySQL ................................................................... 336 5.11.1. Comment fonctionne le cache de requtes ..................................... 337 vi

Manuel de rfrence MySQL 5.0

5.11.2. Options relatives au cache de requtes dans un SELECT .................. 338 5.11.3. Configuration du cache de requtes ............................................. 339 5.11.4. Statut du cache de requtes et maintenance ................................... 340 6. Rplication de MySQL .................................................................................... 342 6.1. Introduction la rplication .................................................................... 342 6.2. Prsentation de l'implmentation de la rplication ....................................... 342 6.3. Dtails d'implmentation de la rplication ................................................. 343 6.3.1. Etat de rplication du matre ........................................................ 344 6.3.2. Etats du thread esclave d'E/S ........................................................ 345 6.3.3. Etats des esclaves de rplication ................................................... 346 6.3.4. Fichiers de relais et de statut de la rplication .................................. 346 6.4. Comment mettre en place la rplication .................................................... 348 6.5. Compatibilit de la rplication entre les versions de MySQL ........................ 352 6.6. Changer de version de rplication ............................................................ 353 6.6.1. Passer la rplication version 4.0 .................................................. 353 6.6.2. Passer la rplication version 5.0 .................................................. 353 6.7. Fonctionnalits de la rplication et problmes connus .................................. 354 6.8. Options de dmarrage de la rplication ..................................................... 357 6.9. FAQ de la rplication ............................................................................ 365 6.10. Correction de problmes courants .......................................................... 370 6.11. Rapporter des bugs de rplication .......................................................... 371 7. Optimisation de MySQL .................................................................................. 373 7.1. Prsentation de l'optimisation ................................................................. 373 7.1.1. Limitations et inconvnients des choix conceptuels de MySQL ........... 373 7.1.2. Portabilit ................................................................................ 374 7.1.3. Pour quoi avons nous utilis MySQL ? .......................................... 375 7.1.4. La suite de tests MySQL ............................................................. 375 7.1.5. Utiliser vos propres tests de performance ........................................ 377 7.2. Optimisation des commandes SELECT et autres requtes ............................. 378 7.2.1. Syntaxe de EXPLAIN (Obtenir des informations sur les SELECT) ...... 378 7.2.2. Mesurer les performances d'une requte ......................................... 386 7.2.3. Vitesse des requtes SELECT ...................................................... 386 7.2.4. Comment MySQL optimise les clauses WHERE ............................... 386 7.2.5. Optimisation d'intervalle ............................................................. 388 7.2.6. Optimisation de combinaison d'index ............................................. 391 7.2.7. Comment MySQL optimise IS NULL .......................................... 394 7.2.8. Comment MySQL optimise DISTINCT ........................................ 394 7.2.9. Comment MySQL optimise les clauses LEFT JOIN et RIGHT JOIN 395 7.2.10. Comment MySQL optimise ORDER BY ....................................... 396 7.2.11. Comment MySQL optimise les clauses GROUP BY ........................ 398 7.2.12. Comment MySQL optimise LIMIT ............................................. 399 7.2.13. Comment viter les analyses de tables .......................................... 400 7.2.14. Vitesse des requtes INSERT ..................................................... 400 7.2.15. Vitesses des commandes UPDATE ............................................... 402 7.2.16. Rapidit des requtes DELETE ................................................... 403 7.2.17. Autres conseils d'optimisation .................................................... 403 7.3. Verrouillage de tables ........................................................................... 405 7.3.1. Mthodes de verrouillage ............................................................ 405 7.3.2. Problme de verrouillage de tables ................................................ 407 7.4. Optimiser la structure de la base de donnes .............................................. 409 7.4.1. Conception ............................................................................... 409 7.4.2. Rendre vos tables aussi compactes que possible ............................... 409 7.4.3. Index de colonnes ...................................................................... 410 7.4.4. Index sur plusieurs colonnes ........................................................ 411 7.4.5. Comment MySQL utilise les index ................................................ 412 7.4.6. Le cache de cl des tables MyISAM ............................................... 414 7.4.7. Comment MySQL compte les tables ouvertes .................................. 418 7.4.8. Quand MySQL ouvre et ferme les tables ........................................ 418 7.4.9. Inconvnients de la cration d'un grand nombre de tables dans la mme base de donnes ........................................................................................ 420 7.5. Optimiser le serveur MySQL .................................................................. 420 7.5.1. Rglage du systme, au moment de la compilation, et paramtres du dmarrage ......................................................................................... 420 vii

Manuel de rfrence MySQL 5.0

7.5.2. Rglage des paramtres du serveur ................................................ 420 7.5.3. Contrle des performances de l'optimisateur de requtes ................... 423 7.5.4. Influences de la compilation et des liaisons sur la vitesse de MySQL ... 423 7.5.5. Comment MySQL gre la mmoire ............................................... 424 7.5.6. Comment MySQL utilise le DNS .................................................. 426 7.6. Problmes avec les disques .................................................................... 426 7.6.1. Utiliser des liens symboliques ...................................................... 427 8. MySQL Scripts clients et utilitaires .................................................................... 431 8.1. Prsentation des scripts serveurs et utilitaires ............................................. 431 8.2. myisampack, le gnrateur de tables MySQL compresses en lecture seule .. 432 8.3. mysql, l'outil en ligne de commande ....................................................... 438 8.3.1. Commandes mysql ................................................................... 442 8.3.2. Comment excuter des commandes SQL depuis un fichier texte ......... 445 8.3.3. Conseils avec mysql ................................................................. 446 8.4. mysqladmin, administration d'un serveur MySQL ................................... 447 8.5. mysqlbinlog, Excuter des requtes dans le log binaire ........................... 451 8.6. mysqlcc, MySQL Control Center .......................................................... 454 8.7. Utiliser mysqlcheck pour l'entretien et la rparation ................................ 456 8.8. mysqldump, sauvegarde des structures de tables et les donnes ................... 459 8.9. mysqlhotcopy, copier les bases et tables MySQL ................................... 465 8.10. mysqlimport, importer des donnes depuis des fichiers texte .................. 466 8.11. Afficher les bases, tables et colonnes ...................................................... 469 8.12. perror, expliquer les codes d'erreurs .................................................... 470 8.13. L'utilitaire de remplacement de chanes replace .................................... 471 9. Structure du langage ........................................................................................ 472 9.1. Littraux : comment crire les chanes et les nombres .................................. 472 9.1.1. Chanes .................................................................................... 472 9.1.2. Nombres .................................................................................. 474 9.1.3. Valeurs hexadcimales ................................................................ 474 9.1.4. Valeurs boolennes .................................................................... 475 9.1.5. Champs de bits .......................................................................... 475 9.1.6. Valeurs NULL ........................................................................... 475 9.2. Noms de bases, tables, index, colonnes et alias ........................................... 475 9.2.1. Identifiants ............................................................................... 476 9.2.2. Sensibilit la casse pour les noms ............................................... 477 9.3. Variables utilisateur .............................................................................. 478 9.4. Variables systme ................................................................................ 479 9.4.1. Variables systme structures ....................................................... 480 9.5. Syntaxe des commentaires ..................................................................... 482 9.6. Cas des mots rservs MySQL ................................................................ 483 10. Jeux de caractres et Unicode .......................................................................... 487 10.1. Jeux de caractres et collation : gnralits .............................................. 487 10.2. Jeux de caractres et collation dans MySQL ............................................ 488 10.3. Dterminer le jeu de caractres et la collation par dfaut ............................ 489 10.3.1. Jeu de caractres et collation serveur ............................................ 489 10.3.2. Jeu de caractres et collation de base de donnes ............................ 490 10.3.3. Jeu de caractres de tables et collation .......................................... 490 10.3.4. Jeu de caractres de colonne et collation ....................................... 491 10.3.5. Exemples d'attribution de jeu de caractres et collation .................... 491 10.3.6. Jeux de caractres et collations de connexion ................................. 492 10.3.7. Jeu de caractres et collation des chanes littrales .......................... 493 10.3.8. Clause COLLATE dans diffrentes parties d'une requte SQL ........... 494 10.3.9. COLLATE clause de prcdence .................................................. 495 10.3.10. Oprateur BINARY ................................................................. 495 10.3.11. Quelques cas spciaux o la dtermination de la collation est difficile 496 10.3.12. Les collation doivent correspondre au bon jeu de caractres ............ 497 10.3.13. Un exemple de l'effet de collation .............................................. 497 10.4. Oprations affectes par le support de jeux de caractres. ........................... 498 10.4.1. Chanes rsultats ...................................................................... 498 10.4.2. CONVERT() ........................................................................... 499 10.4.3. CAST() ................................................................................. 499 10.4.4. Commande SHOW .................................................................... 499 10.5. Support de Unicode ............................................................................. 500 viii

Manuel de rfrence MySQL 5.0

10.6. UTF8 pour les meta-donnes ................................................................ 501 10.7. Compatibilit avec d'autres bases de donnes ........................................... 502 10.8. Nouveau format de fichier de configuration de jeux de caractres ................ 502 10.9. Jeux de caractres national ................................................................... 503 10.10. Prparer le passage de version 4.0 en 4.1 ............................................... 503 10.10.1. Jeux de caractres 4.0 et binmes de jeux de caractres/collations 4.1 correspondants .................................................................................. 504 10.10.2. Conversion de colonnes version 4.0 en version 4.1 ........................ 504 10.11. Les jeux de caractres et collation supports par MySQL. ......................... 505 10.11.1. Les jeux de caractre Unicode ................................................... 506 10.11.2. Les jeux de caractres d'Europe de l'Ouest. .................................. 506 10.11.3. Les jeux de caractres d'Europe Centrale ..................................... 508 10.11.4. Jeu de caractres pour l'Europe du Sud et le Moyen-Orient ............. 508 10.11.5. Les jeux de caractres baltes ..................................................... 509 10.11.6. Les jeux de caractre cyrilliques ................................................ 509 10.11.7. Les jeux de caractres asiatiques ............................................... 510 11. Types de colonnes ......................................................................................... 512 11.1. Introduction aux types de colonnes ......................................................... 512 11.1.1. Prsentation des types numriques of Numeric Types ...................... 512 11.1.2. Prsentation des types de donnes temporels : dates et heures ........... 514 11.1.3. Prsentation des types de chanes ................................................ 515 11.2. Types numriques ............................................................................... 517 11.3. Les types date et heure ......................................................................... 519 11.3.1. Les types DATETIME, DATE, et TIMESTAMP ............................... 520 11.3.2. Le type TIME .......................................................................... 524 11.3.3. Le type YEAR .......................................................................... 525 11.3.4. An 2000 et les types date ........................................................... 525 11.4. Les types chanes ................................................................................ 526 11.4.1. Les types CHAR et VARCHAR ..................................................... 526 11.4.2. Les types BINARY and VARBINARY ........................................... 527 11.4.3. Les types BLOB et TEXT ........................................................... 527 11.4.4. Le type ENUM .......................................................................... 528 11.4.5. Le type SET ............................................................................ 529 11.5. Capacits des colonnes ........................................................................ 531 11.6. Choisir le bon type de colonne .............................................................. 532 11.7. Utilisation des types de donnes issues d'autres SGBDR ............................ 532 12. Fonctions utiliser dans les clauses SELECT et WHERE ....................................... 534 12.1. Oprateurs et fonctions tous types .......................................................... 534 12.1.1. Prcdence des oprateurs ......................................................... 534 12.1.2. Parenthses ............................................................................. 534 12.1.3. Oprateurs de comparaison ........................................................ 535 12.1.4. Oprateurs logiques .................................................................. 539 12.2. Les fonctions de contrle ..................................................................... 540 12.3. Fonctions de chanes de caractres ......................................................... 541 12.3.1. Oprateurs de comparaison pour les chanes de caractres ................ 550 12.4. Fonctions numriques .......................................................................... 552 12.4.1. Oprations arithmtiques ........................................................... 552 12.4.2. Fonctions mathmatiques ........................................................... 553 12.5. Fonctions de dates et d'heures ............................................................... 558 12.6. Recherche en texte intgral (Full-text) dans MySQL ........................... 572 12.6.1. Boolens de recherches en texte intgral ....................................... 574 12.6.2. Recherche en texte intgral avec extension de requte ..................... 576 12.6.3. Restrictions avec la recherche en texte intgral .............................. 577 12.6.4. Paramtrage prcis de la recherche en text intgral de MySQL .......... 577 12.6.5. A faire dans la recherche Full-text ......................................... 579 12.7. Fonctions de transtypage ...................................................................... 579 12.8. Autres fonctions ................................................................................. 581 12.8.1. Fonctions sur les bits ................................................................ 581 12.8.2. Fonctions de chiffrements .......................................................... 582 12.8.3. Fonctions d'informations ........................................................... 585 12.8.4. Fonctions diverses .................................................................... 589 12.9. Fonctions et options utiliser dans les clauses GROUP BY ......................... 592 12.9.1. Fonctions avec GROUP BY ........................................................ 592 ix

Manuel de rfrence MySQL 5.0

12.9.2. Options de GROUP BY ............................................................. 594 12.9.3. GROUP BY avec les champs cachs ............................................ 596 13. Syntaxe des commandes SQL .......................................................................... 598 13.1. Manipulation de donnes : SELECT, INSERT, UPDATE, DELETE .............. 598 13.1.1. Syntaxe de DELETE ................................................................. 598 13.1.2. Syntaxe de DO ......................................................................... 600 13.1.3. Syntaxe de HANDLER ............................................................... 600 13.1.4. Syntaxe de INSERT ................................................................. 601 13.1.5. Syntaxe de LOAD DATA INFILE ............................................. 607 13.1.6. Syntaxe de REPLACE ............................................................... 613 13.1.7. Syntaxe de SELECT ................................................................. 614 13.1.8. Sous-slections (SubSELECT) ................................................... 622 13.1.9. Syntaxe de TRUNCATE ............................................................. 631 13.1.10. Syntaxe de UPDATE ............................................................... 631 13.2. Dfinition de donnes : CREATE, DROP, ALTER ...................................... 632 13.2.1. Syntaxe de ALTER DATABASE ................................................. 632 13.2.2. Syntaxe de ALTER TABLE ....................................................... 633 13.2.3. Syntaxe de CREATE DATABASE ............................................... 637 13.2.4. Syntaxe de CREATE INDEX ..................................................... 638 13.2.5. Syntaxe de CREATE TABLE ..................................................... 638 13.2.6. Syntaxe de DROP DATABASE ................................................... 649 13.2.7. Syntaxe de DROP INDEX ......................................................... 649 13.2.8. Syntaxe de DROP TABLE ......................................................... 650 13.2.9. Syntaxe de RENAME TABLE ..................................................... 650 13.3. Commandes de bases de l'utilisateur de MySQL ....................................... 651 13.3.1. Syntaxe de DESCRIBE (obtenir des informations sur les colonnes) ... 651 13.3.2. Syntaxe de USE ....................................................................... 652 13.4. Commandes relatives aux verrous et aux transactions ................................ 652 13.4.1. Syntaxes de START TRANSACTION, COMMIT et ROLLBACK ........ 652 13.4.2. Commandes qui ne peuvent pas tre annules ................................ 653 13.4.3. Commandes qui peuvent causer une validation implicite .................. 653 13.4.4. Syntaxe de SAVEPOINT et ROLLBACK TO SAVEPOINT ............. 653 13.4.5. Syntaxe de LOCK TABLES/UNLOCK TABLES ........................... 654 13.4.6. Syntaxe de SET TRANSACTION ............................................... 656 13.5. Rfrence de langage d'administration de la base de donnes ...................... 656 13.5.1. Commande de gestion des comptes utilisateurs .............................. 656 13.5.2. Commandes d'entretien des tables ............................................... 663 13.5.3. Syntaxe de SHOW ..................................................................... 672 13.5.4. Autres commandes d'administration ............................................. 685 13.6. Commandes de rplication ................................................................... 689 13.6.1. Requtes SQL pour contrler les matres de rplication ................... 689 13.6.2. Commandes SQL de contrle des esclaves de rplication ................. 690 13.7. Syntaxe SQL pour les commandes prpares ........................................... 698 14. Moteurs de tables MySQL et types de table ........................................................ 701 14.1. Le moteur de tables MyISAM ................................................................ 702 14.1.1. Options de dmarrage MyISAM .................................................. 704 14.1.2. Espace ncessaire pour stocker les index ....................................... 705 14.1.3. Formats de table MyISAM .......................................................... 706 14.1.4. Problmes avec les tables MyISAM .............................................. 708 14.2. Tables assembles MERGE .................................................................... 709 14.2.1. Problmes avec les tables MERGE ................................................ 711 14.3. Le moteur de table MEMORY (HEAP) ...................................................... 712 14.4. Tables BDB ou BerkeleyDB .............................................................. 714 14.4.1. Systmes d'exploitation supports par BDB .................................... 714 14.4.2. Installation de BDB ................................................................... 715 14.4.3. Options de dmarrage BDB ........................................................ 715 14.4.4. Caractristiques des tables BDB .................................................. 716 14.4.5. Ce que nous devons corriger dans BDB dans un futur proche : ........... 718 14.4.6. Restrictions avec les tables BDB .................................................. 718 14.4.7. Erreurs pouvant survenir lors de l'utilisation des tables BDB ............. 719 14.5. Le moteur de table EXAMPLE ............................................................... 719 14.6. Le moteur de table FEDERATED ........................................................... 720 14.6.1. Installation du moteur de table FEDERATED ................................. 720 x

Manuel de rfrence MySQL 5.0

14.6.2. Description du moteur de stockage FEDERATED ........................... 720 14.6.3. Comment utiliser les tables FEDERATED ..................................... 720 14.6.4. Limitations du moteur de stockage FEDERATED ............................ 721 14.7. Le moteur de table ARCHIVE ............................................................... 722 14.8. Le moteur CSV ................................................................................... 722 14.9. Tables ISAM ..................................................................................... 723 15. Le moteur de tables InnoDB .......................................................................... 725 15.1. Prsentation des tables InnoDB ............................................................ 725 15.2. Informations de contact InnoDB ........................................................... 725 15.3. InnoDB avec MySQL version 3.23 ....................................................... 725 15.4. Configuration InnoDB ........................................................................ 726 15.5. Options de dmarrage InnoDB ............................................................. 730 15.6. Crer des bases InnoDB ...................................................................... 733 15.6.1. Si quelque chose se passe mal la cration de la base de donnes ...... 733 15.7. Crer des tables InnoDB ..................................................................... 734 15.7.1. Comment utiliser les transactions de InnoDB avec diffrentes API ... 734 15.7.2. Convertir des tables MyISAM vers InnoDB .................................. 735 15.7.3. Comment les colonnes AUTO_INCREMENT fonctionnent avec InnoDB ........................................................................................................ 736 15.7.4. Contraintes de cls trangres FOREIGN KEY .............................. 736 15.7.5. InnoDB et la rplication MySQL ............................................... 740 15.7.6. Espaces de tables multiples : chaque table InnoDB a son fichier .ibd 740 15.8. Ajouter et retirer des donnes et des logs InnoDB .................................... 742 15.9. Sauver et restaurer une base InnoDB ..................................................... 743 15.9.1. Forcer la restauration ................................................................ 744 15.9.2. Points de contrle ..................................................................... 745 15.10. Transfrer une base de donnes InnoDB vers une autre machine ............... 745 15.11. Modle de transactions et verrouillage InnoDB ....................................... 746 15.11.1. InnoDB et AUTOCOMMIT ....................................................... 746 15.11.2. InnoDB et SET ... TRANSACTION ISOLATION LEVEL ... 746 15.11.3. Lecture cohrente non-bloquante ............................................... 748 15.11.4. Verrous de lecture SELECT ... FOR UPDATE et SELECT ... LOCK IN SHARE MODE ................................................................... 748 15.11.5. Verrou de cl suivante : viter le problme des lignes fantmes ....... 749 15.11.6. Un exemple de lecture cohrente avec InnoDB ........................... 750 15.11.7. Les verrous poss par diffrentes requtes SQL avec InnoDB ........ 750 15.11.8. Quand est-ce que MySQL valide ou annule implicitement une transaction? ....................................................................................... 751 15.11.9. Dtection des blocages et annulation .......................................... 752 15.11.10. Comment grer les blocages de verrous? ................................... 752 15.12. Conseils pour l'amlioration des performances InnoDB ........................... 753 15.12.1. Le moniteur InnoDB .............................................................. 755 15.13. Implmentation du multi-versionnage ................................................... 758 15.14. Structures de tables et d'index .............................................................. 758 15.14.1. Structure physique d'un index ................................................... 759 15.14.2. Bufferisation des insertions ...................................................... 759 15.14.3. Index hash adaptatifs ............................................................... 759 15.14.4. Structure physique d'une ligne .................................................. 760 15.15. Gestion de l'espace fichiers et des entres/sorties disque ........................... 760 15.15.1. Accs disques ........................................................................ 760 15.15.2. Utiliser les raw devices pour l'espace de tables ............................. 761 15.15.3. Gestion de l'espace fichier ........................................................ 761 15.15.4. Dfragmentation des tables ....................................................... 762 15.16. Gestion des erreurs InnoDB ............................................................... 762 15.16.1. Codes d'erreurs InnoDB ......................................................... 763 15.16.2. Codes d'erreur sytme ............................................................. 763 15.17. Restrictions sur les tables InnoDB ....................................................... 768 15.18. Rsolution de problmes avec InnoDB ................................................. 770 15.18.1. Solutions pour le dictionnaire de donnes InnoDB ....................... 770 16. Introduction MySQL Cluster ......................................................................... 772 16.1. Prsentation de MySQL Cluster ............................................................ 772 16.2. Concepts de base de MySQL Cluster ...................................................... 772 16.3. Configuration simple multi-serveurs ....................................................... 773 xi

Manuel de rfrence MySQL 5.0

16.3.1. Matriel, logiciels et rseau ........................................................ 775 16.3.2. Installation .............................................................................. 775 16.3.3. Configuration .......................................................................... 777 16.3.4. Dmarrage initial ..................................................................... 779 16.3.5. Charger les donnes d'exemple et excuter des requtes ................... 779 16.3.6. Arrt et redmarrage du cluster ................................................... 782 16.4. Configuration de MySQL Cluster .......................................................... 783 16.4.1. Compilation du cluster .............................................................. 783 16.4.2. Installation du logiciel ............................................................... 784 16.4.3. Vrification rapide du fonctionnement du cluster ............................ 784 16.4.4. Fichier de configuration ............................................................ 785 16.5. Serveur de gestion du cluster MySQL ..................................................... 806 16.5.1. Utilisation des processus serveurs MySQL par MySQL Cluster .... 807 16.5.2. ndbd, le processus de stockage du cluster .................................... 807 16.5.3. ndb_mgmd, le serveur de gestion ................................................ 809 16.5.4. ndb_mgm, le client de gestion du cluster ...................................... 809 16.5.5. Options des commandes pour le cluster MySQL ............................ 810 16.6. Administration de MySQL Cluster ......................................................... 812 16.6.1. Commandes du client de gestion du Cluster ................................... 812 16.6.2. Rapport d'vnements gnrs par le cluster MySQL ...................... 813 16.6.3. Utilisateur unique du cluster ....................................................... 818 16.6.4. Sauvegarde en ligne de MySQL Cluster ....................................... 818 16.7. Utilisation d'interconnexions haute vitesse avec MySQL Cluster .................. 821 16.7.1. Configurer le cluster MySQL avec les sockets SCI ......................... 821 16.7.2. Mesures de vitesses pour comprendre les impacts sur le cluster ......... 824 16.8. Cluster Limitations in MySQL 4.1 ......................................................... 826 16.9. Cluster MySQL en 5.0 et 5.1 ................................................................. 828 16.9.1. volutions de MySQL Cluster en MySQL 5.0 ........................... 828 16.9.2. Plans de dveloppement de MySQL 5.1 pour le cluster MySQL ........ 829 16.10. MySQL Cluster FAQ ......................................................................... 830 16.11. MySQL Cluster Glossary ................................................................... 836 17. Introduction MaxDB ................................................................................... 839 17.1. Historique de MaxDB .......................................................................... 839 17.2. Licence et support MaxDB ................................................................... 839 17.3. Liens traitant de MaxDB ....................................................................... 839 17.4. Concepts de base de MaxDB ................................................................. 839 17.5. Diffrences de fonctionnalits entre MaxDB et MySQL ............................. 839 17.6. Interoprabilit entre MaxDB et MySQL ................................................. 840 17.7. Mots rservs de MaxDB ...................................................................... 840 18. Donnes spatiales avec MySQL ....................................................................... 844 18.1. Introduction GIS .............................................................................. 844 18.2. Le modle gomtrique OpenGIS .......................................................... 845 18.2.1. La hirarchie des classes gomtriques ......................................... 845 18.2.2. Classe Geometry ................................................................... 846 18.2.3. Classe Point ......................................................................... 847 18.2.4. Classe Curve ......................................................................... 847 18.2.5. Classe LineString ............................................................... 848 18.2.6. Classe Surface ..................................................................... 848 18.2.7. Classe Polygon ..................................................................... 848 18.2.8. Classe GeometryCollection ............................................... 849 18.2.9. Classe MultiPoint ............................................................... 849 18.2.10. Classe MultiCurve ............................................................. 850 18.2.11. Classe MultiLineString ................................................... 850 18.2.12. Classe MultiSurface ......................................................... 850 18.2.13. Classe MultiPolygon ......................................................... 850 18.3. Formats gomtriques supports ............................................................ 851 18.3.1. Format Well-Known Text (WKT) ............................................... 851 18.3.2. Le format Well-Known Binary (WKB) ........................................ 852 18.4. Crer une base de donnes avec les fonctionnalits gographiques ............... 853 18.4.1. Types de donnes gographiques MySQL ..................................... 853 18.4.2. Crer des objets gographiques ................................................... 853 18.4.3. Crer des colonnes gomtriques ................................................. 856 18.4.4. Remplir des colonnes gomtriques ............................................. 857 xii

Manuel de rfrence MySQL 5.0

18.4.5. Lire des donnes gomtriques ................................................... 858 18.5. Analyser des donnes gographiques ...................................................... 858 18.5.1. Fonctions pour convertir les formes de format ............................... 859 18.5.2. Fonction d'analyse des proprits des formes Geometry ................ 859 18.5.3. Fonctions qui gnrent des formes gomtriques partir d'autres formes ........................................................................................................ 865 18.5.4. Fonctions de tests des relations gomtriques entre les formes .......... 866 18.5.5. Relations avec les Rectangles enveloppes (MBRs) .......................... 866 18.5.6. Fonctions qui testent les relations gomtriques entre les formes ....... 867 18.6. Optimiser l'analyse gographique ........................................................... 868 18.6.1. Crer un index gomtrique ....................................................... 869 18.6.2. Utiliser un index gomtrique ..................................................... 870 18.7. MySQL compatibilit avec GIS ............................................................. 871 18.7.1. Les fonctionnalits de GIS que nous n'avons pas encore implment .. 871 19. Procdures stockes et fonctions ...................................................................... 872 19.1. Procdures stockes et tables de droits .................................................... 872 19.2. Syntaxe des procdures stockes ............................................................ 873 19.2.1. CREATE PROCEDURE et CREATE FUNCTION ........................... 873 19.2.2. ALTER PROCEDURE et ALTER FUNCTION ............................... 875 19.2.3. DROP PROCEDURE et DROP FUNCTION ................................... 875 19.2.4. SHOW CREATE PROCEDURE et SHOW CREATE FUNCTION ....... 875 19.2.5. SHOW PROCEDURE STATUS et SHOW FUNCTION STATUS ....... 875 19.2.6. CALL ..................................................................................... 876 19.2.7. La commande compose BEGIN ... END ................................. 876 19.2.8. La commande DECLARE ........................................................... 876 19.2.9. Les variables dans les procdures stockes .................................... 876 19.2.10. Conditions et gestionnaires ....................................................... 877 19.2.11. Curseurs ............................................................................... 878 19.2.12. Instructions de contrle ............................................................ 879 20. Dclencheurs ................................................................................................ 882 20.1. Syntaxe de CREATE TRIGGER ............................................................ 882 20.2. Syntaxe de DROP TRIGGER ................................................................ 882 20.3. Utiliser les dclencheurs ...................................................................... 883 21. Vues ........................................................................................................... 886 21.1. Syntaxe ALTER VIEW ........................................................................ 886 21.2. Syntaxe de CREATE VIEW .................................................................. 886 21.3. Syntaxe DROP VIEW .......................................................................... 887 21.4. Syntaxe SHOW CREATE VIEW ............................................................ 887 22. La base de donnes d'informations INFORMATION_SCHEMA ............................... 888 22.1. Les tables INFORMATION_SCHEMA ..................................................... 889 22.1.1. La table INFORMATION_SCHEMA SCHEMATA ........................... 890 22.1.2. La table INFORMATION_SCHEMA TABLES ............................... 890 22.1.3. La table INFORMATION_SCHEMA COLUMNS ............................. 891 22.1.4. La table INFORMATION_SCHEMA STATISTICS ....................... 893 22.1.5. La table INFORMATION_SCHEMA USER_PRIVILEGES ............. 894 22.1.6. La table INFORMATION_SCHEMA SCHEMA_PRIVILEGES ......... 894 22.1.7. La table INFORMATION_SCHEMA TABLE_PRIVILEGES ........... 894 22.1.8. La table INFORMATION_SCHEMA COLUMN_PRIVILEGES ......... 895 22.1.9. La table INFORMATION_SCHEMA CHARACTER_SETS ............... 895 22.1.10. La table INFORMATION_SCHEMA COLLATIONS ..................... 896 22.1.11. La table INFORMATION_SCHEMA COLLATION_CHARACTER_SET_APPLICABILITY ............................. 897 22.1.12. La table INFORMATION_SCHEMA TABLE_CONSTRAINTS ....... 897 22.1.13. La table INFORMATION_SCHEMA KEY_COLUMN_USAGE ......... 898 22.1.14. La table INFORMATION_SCHEMA ROUTINES ......................... 898 22.1.15. La table INFORMATION_SCHEMA VIEWS ............................... 900 22.1.16. Autres tables INFORMATION_SCHEMA ..................................... 900 22.2. Extensions la commande SHOW ........................................................... 901 23. Mathmatiques de prcision ............................................................................ 903 23.1. Types de valeurs numriques ................................................................ 903 23.2. Changements de type de donnes avec DECIMAL ..................................... 904 23.3. Gestion des expressions ....................................................................... 905 23.4. Arrondissement de valeurs ................................................................... 907 xiii

Manuel de rfrence MySQL 5.0

23.5. Exemples de calculs de mathmatiques ................................................... 908 24. API MySQL ................................................................................................. 912 24.1. Utilitaires de dveloppement des programmes MySQL .............................. 912 24.1.1. msql2mysql, convertit des programmes mSQL vers MySQL ......... 912 24.1.2. mysql_config lit les options de compilations du client MySQL .... 912 24.2. API MySQL C ................................................................................... 913 24.2.1. Types de donnes de l'API C ...................................................... 914 24.2.2. Vue d'ensemble des fonctions de l'API C ...................................... 917 24.2.3. Description des fonctions de l'API C ............................................ 920 24.2.4. Fonctions C de commandes prpares .......................................... 958 24.2.5. Types de donnes de l'API C ...................................................... 958 24.2.6. Prsentation des fonctions de l'interface C ..................................... 961 24.2.7. Description des fonctions C pour les requtes prpares ................... 963 24.2.8. Problmes avec l'interface C des commandes prpares ................... 983 24.2.9. Gestion des commandes multiples avec l'interface C ....................... 983 24.2.10. Gestion des dates et horaires avec l'interface C ............................. 984 24.2.11. Description des fonctions threades de C .................................... 985 24.2.12. Description des fonctions C du serveur embarqu ......................... 986 24.2.13. Questions courantes sur la bibliothque C ................................... 987 24.2.14. Compiler les clients ................................................................ 989 24.2.15. Comment faire un client MySQL thread .................................... 989 24.2.16. libmysqld, la bibliothque du serveur embarqu MySQL ........... 991 24.3. API PHP pour MySQL ........................................................................ 995 24.3.1. Problmes frquents avec MySQL et PHP .................................... 995 24.4. API Perl pour MySQL ......................................................................... 995 24.5. Interface MySQL C++ ......................................................................... 996 24.5.1. Borland C++ ........................................................................... 996 24.6. MySQL Python API ............................................................................ 996 24.7. MySQL Tcl API ................................................................................. 996 24.8. Couche MySQL pour Eiffel .................................................................. 996 25. Pilotes MySQL ............................................................................................. 997 25.1. Support ODBC de MySQL ................................................................... 997 25.1.1. Introduction to MyODBC .......................................................... 997 25.1.2. General Information About ODBC and MyODBC ........................ 1000 25.1.3. Comment installer MyODBC ................................................... 1002 25.1.4. Installer MyODBC depuis une distribution binaire sur Windows ..... 1003 25.1.5. Installing MyODBC from a Binary Distribution on Unix ............... 1003 25.1.6. Installer MyODBC depuis la version source sur Windows .............. 1004 25.1.7. Installing MyODBC from a Source Distribution on Unix ............... 1006 25.1.8. Installer MyODBC depuis le serveur de versions BitKeeper ........... 1011 25.1.9. MyODBC Configuration ......................................................... 1012 25.1.10. Problmes avec les connexions MyODBC ................................. 1029 25.1.11. MyODBC et Microsoft Access ................................................ 1029 25.1.12. MyODBC et Microsoft VBA et ASP ........................................ 1034 25.1.13. MyODBC et les outils tierce partie .......................................... 1036 25.1.14. Fonctionnalits gnrales de MyODBC .................................... 1037 25.1.15. Instructions de base pour utiliser MyODBC ............................... 1040 25.1.16. Table de rfrence MyODBC ................................................. 1041 25.1.17. MyODBC Data Types ........................................................... 1046 25.1.18. Codes d'erreurs MyODBC ...................................................... 1047 25.1.19. MyODBC avec VB : ADO, DAO and RDO .............................. 1048 25.1.20. MyODBC avec Microsoft .NET .............................................. 1051 25.1.21. Crdits ............................................................................... 1054 25.2. MySQL et Java (JDBC) ..................................................................... 1054 26. Gestion des erreurs avec MySQL ................................................................... 1055 27. Etendre MySQL .......................................................................................... 1090 27.1. Rouages de MySQL .......................................................................... 1090 27.1.1. Threads MySQL .................................................................... 1090 27.1.2. Suite de test de MySQL ........................................................... 1090 27.2. Ajouter des fonctions MySQL .......................................................... 1093 27.2.1. Fonctionnalits des fonctions utilisateur ..................................... 1093 27.2.2. Syntaxe de CREATE FUNCTION/DROP FUNCTION ................. 1094 27.2.3. Ajouter une nouvelle fonction dfinie par l'utilisateur (UDF) ........... 1094 xiv

Manuel de rfrence MySQL 5.0

27.2.4. Ajouter de nouvelles fonctions natives ....................................... 1102 27.3. Ajouter une nouvelle procdure MySQL ............................................. 1103 27.3.1. La procdure Analyse ............................................................. 1103 27.3.2. Ecrire une procdure ............................................................... 1103 A. Problmes et erreurs communes ...................................................................... 1105 A.1. Comment dterminer ce qui pose problme ............................................ 1105 A.2. Erreurs communes rencontres avec MySQL .......................................... 1106 A.2.1. Erreur Access denied ........................................................ 1106 A.2.2. Erreur Can't connect to [local] MySQL server ........ 1106 A.2.3. Erreur Client does not support authentication protocol ..................................................................................... 1108 A.2.4. Echec de saisie du mot de passe avec le client interactif .................. 1108 A.2.5. Erreur Host '...' is blocked ........................................ 1109 A.2.6. Erreur Too many connections .......................................... 1109 A.2.7. Erreur Out of memory ........................................................ 1109 A.2.8. Erreur MySQL server has gone away .............................. 1110 A.2.9. Erreur Packet too large .................................................. 1111 A.2.10. Erreurs de communication / Connexion annule .......................... 1112 A.2.11. Erreur The table is full ............................................... 1113 A.2.12. Erreur Can't create/write to file ............................. 1114 A.2.13. Erreur du client Commands out of sync ............................ 1114 A.2.14. Erreur Ignoring user ....................................................... 1114 A.2.15. Erreur Table 'xxx' doesn't exist ............................... 1115 A.2.16. Erreur Can't initialize character set xxx ............. 1115 A.2.17. Fichier non trouv ................................................................. 1115 A.3. Notes relatives l'installation ............................................................... 1116 A.3.1. Problmes lors de la liaison avec la bibliothque du client MySQL ... 1116 A.3.2. Comment excuter MySQL comme un utilisateur normal ............... 1117 A.3.3. Problmes avec les permissions sur fichiers .................................. 1118 A.4. Notes relatives l'administration .......................................................... 1118 A.4.1. Comment rinitialiser un mot de passe Root oubli ........................ 1118 A.4.2. Que faire si MySQL plante constamment ? .................................. 1120 A.4.3. Comment MySQL gre un disque plein ....................................... 1122 A.4.4. O MySQL stocke les fichiers temporaires ? ................................ 1123 A.4.5. Comment protger ou changer le fichier socket /tmp/mysql.sock 1124 A.4.6. Problmes de fuseaux horaires ................................................... 1124 A.5. Problmes relatifs aux requtes ............................................................ 1124 A.5.1. Sensibilit la casse dans les recherches ...................................... 1124 A.5.2. Problmes avec l'utilisation des colonnes DATE ............................ 1125 A.5.3. Problmes avec les valeurs NULL ............................................... 1126 A.5.4. Problmes avec les alias ....................................................... 1127 A.5.5. Erreur Some non-transactional changed tables couldn't be rolled back ......................................................................... 1127 A.5.6. Effacer des lignes de tables relies .............................................. 1128 A.5.7. Rsoudre les problmes des lignes non retournes ......................... 1128 A.5.8. Problmes de comparaisons avec nombres virgule flottante ........... 1129 A.6. Problmes lis l'optimiseur ................................................................ 1131 A.7. Questions relatives aux dfinitions de tables ........................................... 1131 A.7.1. Problmes avec ALTER TABLE. ............................................... 1131 A.7.2. Comment changer l'ordre des colonnes dans une table .................... 1132 A.7.3. Problmes avec les tables temporaires ......................................... 1132 B. Crdits ....................................................................................................... 1134 B.1. Dveloppeurs chez MySQL AB ............................................................ 1134 B.2. Contributeurs MySQL ...................................................................... 1138 B.3. Documenteurs et traducteurs ................................................................ 1142 B.4. Bibliothques utilises et incluses dans MySQL ...................................... 1143 B.5. Applications qui supportent MySQL ..................................................... 1144 B.6. Outils utiliss pour crer MySQL .......................................................... 1144 B.7. Supporters de MySQL ........................................................................ 1145 B.8. Les volutions de MySQL (la liste des tches) ......................................... 1146 B.8.1. Nouvelles fonctionnalits prvues pour la version 5.0 ..................... 1146 B.8.2. Nouvelles fonctionnalits prvues pour 5.1 .................................. 1147 B.8.3. Ce qui doit tre fait dans un futur proche ...................................... 1147 xv

Manuel de rfrence MySQL 5.0

B.8.4. Ce qui est prvu moyen terme ................................................. 1150 B.8.5. Ce qui n'est pas prvu .............................................................. 1151 C. Historique des changements MySQL ............................................................... 1152 C.1. Changements de la version 5.0.0 (Dveloppement) ................................... 1152 C.1.1. Changements de la version 5.0.6 (pas encore publie) .................... 1152 C.1.2. Changements de la version 5.0.5 (Bientt publie) ......................... 1153 C.1.3. Changements de la version 5.0.4 (16 avril 2005) ........................... 1155 C.1.4. Changements de la version 5.0.3 (23 mars 2005 : Beta) .................. 1158 C.1.5. Changements de la version 5.0.2 (1er Dcembre 2004) ................... 1168 C.1.6. Changements de la version 5.0.1 (pas encore publie) .................... 1170 C.1.7. Changements de la version 5.0.0 (22 dcembre 2003 : Alpha) .......... 1172 C.2. Changements de la version 4.1.x (Alpha) ................................................ 1172 C.2.1. Changements de la version 4.1.12 (Pas encore publie) ................... 1173 C.2.2. Changements de la version 4.1.11 (1 avril 2005) ........................... 1175 C.2.3. Changements de la version 4.1.10 (12 fvrier 2005) ....................... 1182 C.2.4. Changements de la version 4.1.9 (11 Janvier 2005) ........................ 1186 C.2.5. Changements de la version 4.1.8 (14 Dcembre 2004) .................... 1188 C.2.6. Changements de la version 4.1.7 (bientt publie) ......................... 1188 C.2.7. Changements de la version 4.1.6 (10 Octobre 2004) ....................... 1189 C.2.8. Changements de la version 4.1.4 (16 Septembre 2004) ................... 1191 C.2.9. Changements de la version 4.1.4 (26 Aot 2004) ........................... 1192 C.2.10. Changements de la version 4.1.3 (pas encore publie) ................... 1194 C.2.11. Changements de la version 4.1.2 ............................................... 1195 C.2.12. Changements de la version 4.1.1 (01 dcembre 2003) ................... 1203 C.2.13. Changements de la version 4.1.0 (03 Avril 2003 : alpha) ............... 1208 C.3. Changements de la version 4.0.x (Production) ......................................... 1211 C.3.1. Changements de la version 4.0.25 (pas encore publi) .................... 1211 C.3.2. Changements de la version 4.0.24 (04 Mars 2005) ......................... 1212 C.3.3. Changements de la version 4.0.23 (18 Dcembre 2004) .................. 1215 C.3.4. Changements de la version 4.0.22 (27 Octobre 2004) ..................... 1216 C.3.5. Changements de la version 4.0.21 ............................................... 1218 C.3.6. Changements de la version 4.0.20 ............................................... 1218 C.3.7. Changements de la version 4.0.19 (04 mai 2004) ........................... 1218 C.3.8. Changements de la version 4.0.18 (pas encore publie) ................... 1222 C.3.9. Changements de la version 4.0.17 (14 dcembre 2003) ................... 1225 C.3.10. Changements de la version 4.0.16 (17 octobre 2003) .................... 1228 C.3.11. Changements de la version 4.0.15 (03 septembre 2003) ................. 1230 C.3.12. Changements de la version 4.0.14 (18 juillet 2003) ...................... 1234 C.3.13. Changements de la version 4.0.13 (16 Mai 2003) ......................... 1237 C.3.14. Changements de la version 4.0.12 (15 Mars 2003 : Production) ...... 1241 C.3.15. Changements de la version 4.0.11 (20 Fvrier 2003) ..................... 1243 C.3.16. Changements de la version 4.0.10 (29 janvier 2003) ..................... 1244 C.3.17. Changements de la version 4.0.9 (09 janvier 2003) ....................... 1245 C.3.18. Changements de la version 4.0.8 (07 janvier 2003) ....................... 1245 C.3.19. Changements de la version 4.0.7 (20 Dcembre 2002) .................. 1246 C.3.20. Changements de la version 4.0.6 (14 Dcembre 2002 : Gamma) ..... 1247 C.3.21. Changements de la version 4.0.5 (13 novembre 2002) ................... 1248 C.3.22. Changements de la version 4.0.4 (29 septembre 2002) .................. 1250 C.3.23. Changements de la version 4.0.3 (26 Aot 2002 : Beta) ................. 1252 C.3.24. Changements de la version 4.0.2 (01 Juillet 2002) ........................ 1254 C.3.25. Changements de la version 4.0.1 (23 dcembre 2001) ................... 1258 C.3.26. Changements de la version 4.0.0 (Octobre 2001 : alpha) ............... 1259 C.4. Changements de la version 3.23.x (Recent; still supported) ........................ 1260 C.4.1. Changements de la version 3.23.59 (not released yet) ..................... 1261 C.4.2. Changements de la version 3.23.58 (11 septembre 2003) ................. 1262 C.4.3. Changements de la version 3.23.57 (06 juin 2003) ......................... 1262 C.4.4. Changements de la version 3.23.56 (13 mars 2003) ........................ 1263 C.4.5. Changements de la version 3.23.55 (23 janvier 2003) ..................... 1264 C.4.6. Changements de la version 3.23.54 (05 dcembre 2002) ................. 1265 C.4.7. Changements de la version 3.23.53 (09 octobre 2002) .................... 1266 C.4.8. Changements de la version 3.23.52 (14 aot 2002) ........................ 1267 C.4.9. Changements de la version 3.23.51 (31 mai 2002) ......................... 1267 C.4.10. Changements de la version 3.23.50 (21 avril 2002) ...................... 1268 xvi

Manuel de rfrence MySQL 5.0

C.4.11. Changements de la version 3.23.49 ........................................... 1269 C.4.12. Changements de la version 3.23.48 (07 fvrier 2002) .................... 1270 C.4.13. Changements de la version 3.23.47 (27 dcembre 2001) ................ 1270 C.4.14. Changements de la version 3.23.46 (29 novembre 2001) ............... 1271 C.4.15. Changements de la version 3.23.45 (22 novembre 2001) ............... 1271 C.4.16. Changements de la version 3.23.44 (31 octobre 2001) ................... 1272 C.4.17. Changements de la version 3.23.43 (04 octobre 2001) ................... 1273 C.4.18. Changements de la version 3.23.42 (08 septembre 2001) ............... 1273 C.4.19. Changements de la version 3.23.41 (11 aot 2001) ....................... 1274 C.4.20. Changements de la version 3.23.40 ........................................... 1275 C.4.21. Changements de la version 3.23.39 (12 juin 2001) ....................... 1276 C.4.22. Changements de la version 3.23.38 (09 mai 2001) ........................ 1276 C.4.23. Changements de la version 3.23.37 (17 avril 2001) ...................... 1277 C.4.24. Changements de la version 3.23.36 (27 mars 2001) ...................... 1278 C.4.25. Changements de la version 3.23.35 (15 mars 2001) ...................... 1278 C.4.26. Changements de la version 3.23.34a .......................................... 1279 C.4.27. Changements de la version 3.23.34 (10 mars 2001) ...................... 1279 C.4.28. Changements de la version 3.23.33 (09 fvrier 2001) .................... 1280 C.4.29. Changements de la version 3.23.32 (22 Jan 2001: Production) ........ 1281 C.4.30. Changements de la version 3.23.31 (17 janvier 2001) ................... 1281 C.4.31. Changements de la version 3.23.30 (04 janvier 2001) ................... 1282 C.4.32. Changements de la version 3.23.29 (16 dcembre 2000) ................ 1283 C.4.33. Changements de la version 3.23.28 (22 Nov 2000: Gamma) .......... 1285 C.4.34. Changements de la version 3.23.27 (24 octobre 2000) ................... 1287 C.4.35. Changements de la version 3.23.26 (18 octobre 2000) ................... 1287 C.4.36. Changements de la version 3.23.25 (29 septembre 2000) ............... 1288 C.4.37. Changements de la version 3.23.24 (08 septembre 2000) ............... 1289 C.4.38. Changements de la version 3.23.23 (01 septembre 2000) ............... 1289 C.4.39. Changements de la version 3.23.22 (31 juillet 2000) ..................... 1291 C.4.40. Changements de la version 3.23.21 ........................................... 1291 C.4.41. Changements de la version 3.23.20 ........................................... 1292 C.4.42. Changements de la version 3.23.19 ........................................... 1292 C.4.43. Changements de la version 3.23.18 ........................................... 1293 C.4.44. Changements de la version 3.23.17 ........................................... 1293 C.4.45. Changements de la version 3.23.16 ........................................... 1294 C.4.46. Changements de la version 3.23.15 (May 2000: Beta) ................... 1294 C.4.47. Changements de la version 3.23.14 ........................................... 1295 C.4.48. Changements de la version 3.23.13 ........................................... 1296 C.4.49. Changements de la version 3.23.12 (07 mars 2000) ...................... 1296 C.4.50. Changements de la version 3.23.11 ........................................... 1297 C.4.51. Changements de la version 3.23.10 ........................................... 1298 C.4.52. Changements de la version 3.23.9 ............................................. 1298 C.4.53. Changements de la version 3.23.8 (02 janvier 2000) ..................... 1299 C.4.54. Changements de la version 3.23.7 (10 dcembre 1999) ................. 1299 C.4.55. Changements de la version 3.23.6 ............................................. 1300 C.4.56. Changements de la version 3.23.5 (20 octobre 1999) .................... 1301 C.4.57. Changements de la version 3.23.4 (28 septembre 1999) ................. 1302 C.4.58. Changements de la version 3.23.3 ............................................. 1302 C.4.59. Changements de la version 3.23.2 (09 aot 1999) ........................ 1303 C.4.60. Changements de la version 3.23.1 ............................................. 1304 C.4.61. Changements de la version 3.23.0 (05 Aug 1999: Alpha) ............... 1304 C.5. Changements de la version 3.22.x (Old; discontinued) .............................. 1306 C.5.1. Changements de la version 3.22.35 ............................................. 1306 C.5.2. Changements de la version 3.22.34 ............................................. 1306 C.5.3. Changements de la version 3.22.33 ............................................. 1306 C.5.4. Changements de la version 3.22.32 (14 fvrier 2000) ..................... 1307 C.5.5. Changements de la version 3.22.31 ............................................. 1307 C.5.6. Changements de la version 3.22.30 ............................................. 1307 C.5.7. Changements de la version 3.22.29 (02 janvier 2000) ..................... 1307 C.5.8. Changements de la version 3.22.28 (20 octobre 1999) .................... 1308 C.5.9. Changements de la version 3.22.27 ............................................. 1308 C.5.10. Changements de la version 3.22.26 (16 septembre 1999) ............... 1308 C.5.11. Changements de la version 3.22.25 ........................................... 1308 xvii

Manuel de rfrence MySQL 5.0

C.5.12. Changements de la version 3.22.24 (05 juillet 1999) ..................... 1308 C.5.13. Changements de la version 3.22.23 (08 juin 1999) ....................... 1309 C.5.14. Changements de la version 3.22.22 (30 avril 1999) ...................... 1309 C.5.15. Changements de la version 3.22.21 ........................................... 1309 C.5.16. Changements de la version 3.22.20 (18 mars 1999) ...................... 1310 C.5.17. Changements de la version 3.22.19 (Mar 1999: Production) ........... 1310 C.5.18. Changements de la version 3.22.18 ........................................... 1310 C.5.19. Changements de la version 3.22.17 ........................................... 1310 C.5.20. Changements de la version 3.22.16 (Feb 1999: Gamma) ............... 1311 C.5.21. Changements de la version 3.22.15 ........................................... 1311 C.5.22. Changements de la version 3.22.14 ........................................... 1311 C.5.23. Changements de la version 3.22.13 ........................................... 1312 C.5.24. Changements de la version 3.22.12 ........................................... 1312 C.5.25. Changements de la version 3.22.11 ........................................... 1312 C.5.26. Changements de la version 3.22.10 ........................................... 1313 C.5.27. Changements de la version 3.22.9 ............................................. 1314 C.5.28. Changements de la version 3.22.8 ............................................. 1314 C.5.29. Changements de la version 3.22.7 (Sep 1998: Beta) ...................... 1315 C.5.30. Changements de la version 3.22.6 ............................................. 1315 C.5.31. Changements de la version 3.22.5 ............................................. 1316 C.5.32. Changements de la version 3.22.4 ............................................. 1317 C.5.33. Changements de la version 3.22.3 ............................................. 1318 C.5.34. Changements de la version 3.22.2 ............................................. 1318 C.5.35. Changements de la version 3.22.1 (Jun 1998: Alpha) .................... 1319 C.5.36. Changements de la version 3.22.0 ............................................. 1319 C.6. Changements de la version 3.21.x ......................................................... 1320 C.6.1. Changements de la version 3.21.33 ............................................. 1321 C.6.2. Changements de la version 3.21.32 ............................................. 1321 C.6.3. Changements de la version 3.21.31 ............................................. 1321 C.6.4. Changements de la version 3.21.30 ............................................. 1321 C.6.5. Changements de la version 3.21.29 ............................................. 1322 C.6.6. Changements de la version 3.21.28 ............................................. 1322 C.6.7. Changements de la version 3.21.27 ............................................. 1322 C.6.8. Changements de la version 3.21.26 ............................................. 1323 C.6.9. Changements de la version 3.21.25 ............................................. 1323 C.6.10. Changements de la version 3.21.24 ........................................... 1323 C.6.11. Changements de la version 3.21.23 ........................................... 1324 C.6.12. Changements de la version 3.21.22 ........................................... 1324 C.6.13. Changements de la version 3.21.21a .......................................... 1325 C.6.14. Changements de la version 3.21.21 ........................................... 1325 C.6.15. Changements de la version 3.21.20 ........................................... 1325 C.6.16. Changements de la version 3.21.19 ........................................... 1326 C.6.17. Changements de la version 3.21.18 ........................................... 1326 C.6.18. Changements de la version 3.21.17 ........................................... 1326 C.6.19. Changements de la version 3.21.16 ........................................... 1327 C.6.20. Changements de la version 3.21.15 ........................................... 1327 C.6.21. Changements de la version 3.21.14b .......................................... 1328 C.6.22. Changements de la version 3.21.14a .......................................... 1328 C.6.23. Changements de la version 3.21.13 ........................................... 1329 C.6.24. Changements de la version 3.21.12 ........................................... 1329 C.6.25. Changements de la version 3.21.11 ........................................... 1330 C.6.26. Changements de la version 3.21.10 ........................................... 1330 C.6.27. Changements de la version 3.21.9 ............................................. 1331 C.6.28. Changements de la version 3.21.8 ............................................. 1331 C.6.29. Changements de la version 3.21.7 ............................................. 1331 C.6.30. Changements de la version 3.21.6 ............................................. 1332 C.6.31. Changements de la version 3.21.5 ............................................. 1332 C.6.32. Changements de la version 3.21.4 ............................................. 1332 C.6.33. Changements de la version 3.21.3 ............................................. 1332 C.6.34. Changements de la version 3.21.2 ............................................. 1333 C.6.35. Changements de la version 3.21.0 ............................................. 1334 C.7. Changements de la version 3.20.x ......................................................... 1335 C.7.1. Changements de la version 3.20.18 ............................................. 1335 xviii

Manuel de rfrence MySQL 5.0

C.7.2. Changements de la version 3.20.17 ............................................. 1336 C.7.3. Changements de la version 3.20.16 ............................................. 1337 C.7.4. Changements de la version 3.20.15 ............................................. 1337 C.7.5. Changements de la version 3.20.14 ............................................. 1337 C.7.6. Changements de la version 3.20.13 ............................................. 1338 C.7.7. Changements de la version 3.20.11 ............................................. 1338 C.7.8. Changements de la version 3.20.10 ............................................. 1339 C.7.9. Changements de la version 3.20.9 ............................................... 1339 C.7.10. Changements de la version 3.20.8 ............................................. 1339 C.7.11. Changements de la version 3.20.7 ............................................. 1339 C.7.12. Changements de la version 3.20.6 ............................................. 1340 C.7.13. Changements de la version 3.20.3 ............................................. 1341 C.7.14. Changements de la version 3.20.0 ............................................. 1342 C.8. Changements de la versi