Le logiciel MySQL (TM) est un serveur de base de données SQL
très rapide, multi-threadé, multi-utilisateur et robuste.
Le serveur MySQL est destiné aux missions stratégiques et aux systèmes
de production à forte charge, ainsi qu'à l'intégration dans des logiciels
déployés à grande échelle.
MySQL est une marque déposée de MySQL AB.
Le logiciel MySQL dispose de deux licenses. Les utilisateurs peuvent
choisir entre utiliser MySQL comme un logiciel Open Source/Logiciel libre,
sous les termes de la licence GNU General Public License
(http://www.gnu.org/licenses/) ou bien, ils peuvent acheter une
licence commerciale auprès de MySQL AB.
See section 1.4 Support MySQL et licences.
Le site web de MySQL (http://www.mysql.com/) fournit les dernières
informations sur le serveur MySQL.
La liste suivante décrit les sections particulières de ce manuel :
serveur de base de données MySQL,
voyez section 1.3 Qui est MySQL AB ?.
serveur de base de données MySQL,
voyez section 1.2.2 Les fonctionnalités principales de MySQL.
serveur de base de données MySQL sur
de nouvelles architectures ou systèmes d'exploitation, voyez section D Port vers d'autres systèmes.
serveur de base de données MySQL,
voyez section 3 Tutoriels d'introduction.
SQL et des tests de performances, voyez le dossier
de tests (`sql-bench' de la distribution.
Important:
Les rapports d'erreurs (aussi appelés bogues), ainsi que les questions et commentaires, doivent être envoyés à la liste de diffusion mysql@lists.mysql.com. See section 1.7.1.3 Comment rapporter un bogue ou un problème.
Le script mysqlbug doit être utilisé pour générer le rapport de bogues.
Pour les distributions sources, le script mysqlbug est accessible dans le
dossier `scripts'. Pour les distributions binaires, mysqlbug est
installé dans le dossier `bin' (`/usr/bin' pour le package RPM du
serveur MySQL).
Si vous avez trouvé un problème de sécurité critique
dans le code du serveur MySQL, vous devez envoyez un email à
security@mysql.com.
Ceci est le manuel de référence de MySQL; il documente MySQL
jusqu'à la version 5.0.0-alpha. Les évolutions fonctionnelles
sont toujours indiquées avec une référence à la version d'évolution,
de manière à ce que ce manuel soit toujours valable, même si vous utilisez
une ancienne version de MySQL.
Etant un manuel de référence, il ne fournit aucune description générale
sur le langage SQL ou les concepts de bases de données relationnelles.
Comme le logiciel de base de données MySQL est en développement constant,
ce manuel es mis à jour fréquemment.
La version la plus récente est disponibles à
http://www.mysql.com/documentation/ en différents formats, incluant
HTML, PDF et Windows HLP.
L'original du document est un fichier au format Texinfo.
La version HTML est produite automatiquement avec une version modifiée de
texi2html.
La version en texte plein et version Info sont produites par makeinfo.
La version PostScript est produite avec texi2dvi et dvips.
La version PDF est produite avec pdftex.
Si vous avez du mal à trouver des informations dans ce manuel, vous pouvez essayer notre version avec moteur de recherche, sur notre site web : http://www.mysql.com/doc/.
Si vous avez des suggestions concernant des ajouts ou des corrections à ce manuel, vous pouvez les envoyez à l'équipe de documentation à docs@mysql.com.
Ce manuel a été écrit initialement par David Axmark et Michael (Monty) Widenius. Il est actuellement entretenu par Michael (Monty) Widenius, Arjen Lentz et Paul DuBois. Pour les autres contributeurs, voyez les section B Crédits.
La traduction de ce manuel a été faite sous la direction de Damien Seguy, et organisée par Mehdi Achour. David Manusset, Guillaume Plessis, Patrick Haond, Sylvain Maugiron et Yannick Torres ont contribué largement à cette traduction et son entretien.
Le copyright (2002) de ce manuel est la propriété de la société suédoise
MySQL AB. See section 1.4.2 Copyrights et licences utilisées par MySQL.
Ce manuel utilise certaines conventions typographiques :
constant
mysqladmin fonctionne, exécutez-le
avec l'option --help.''
Lorsque les commandes qui sont affichées sont destinées à être exécutées
par un programme particulier, le nom du programme est indiqué dans l'invite
de la commande. Par exemple, shell> indique une commande que vous exécutez
depuis votre console shell, et mysql> indique une commande que vous exécutez
depuis le client mysql :
shell> tapez une commande shell ici mysql> tapez une requête SQL ici
Les commandes shell sont affichées en utilisant la syntaxe du Bourne. Si vous utilisez
le style csh-shell, vous aurez peut être a adapter légèrement les commandes.
Par exemple, la syntaxe de modification d'une variable et d'exécution d'une commande
ressemble à ceci en Bourne shell :
shell> NOMVAR=valeur une_commande
En csh, vous auriez a exécuter la commande suivante :
shell> setenv NOMVAR valeur shell> une_commande
Souvent, les noms de bases de données, tables ou colonnes doivent être
remplacés dans les commandes. Pour indiquer qu'une telle substitution
est nécessaire, ce manuel utilise les noms de nom_de_base,
nom_de_table et nom_colonne. Par exemple, vous pourriez avoir une
requête comme ceci :
mysql> SELECT nom_colonne FROM nom_de_base.nom_de_table;
Cela signifie que si vous devez saisir une requête semblable, vous devriez utiliser votre propre nom de colonne, table et base de données, ce qui pourrait se traduire par ceci :
mysql> SELECT author_name FROM biblio_db.author_list;
Les mot réservés SQL ne sont pas sensibles à la casse, et peuvent être écrits en majuscules ou minuscules. Ce manuel utilise les majuscules.
Dans les illustrations de syntaxe, les crochets (`[' et `]') sont
utilisés pour indiquer des clauses ou mots optionnels. Par exemple, dans la requête
suivante, IF EXISTS est optionnel :
DROP TABLE [IF EXISTS] nom_de_table
Lorsqu'un élément de syntaxe est constitué d'un certain nombre d'alternatives, les alternatives sont séparées par des barres verticales (`|'). Lorsqu'un membre d'un tel jeu de possibilités peut être choisi, les alternatives sont listées entre crochets (`[' et `]'):
TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)
Lorsqu'un élément d'un jeu de possibilités doit être choisi, les alternatives sont placées entre accolades (`{' et `}'):
{DESCRIBE | DESC} nom_de_table {nom_colonne | wild}
MySQL, le plus populaire des serveurs de bases de données SQL Open Source,
est développé, distribué et supporté par MySQL AB. MySQL AB est une
société commerciale, fondée par les développeurs de MySQL, qui développent leur
activité en fournissant des services autour de MySQL.
section 1.3 Qui est MySQL AB ?
Le site web de MySQL (http://www.mysql.com/)
fournit les toutes dernières actualités sur le logiciel MySQL
et sur la société MySQL AB.
MySQL est un système de gestion de bases de données.
MySQL. Comme les ordinateurs sont très bons à manipuler de grandes
quantités de données, le système de gestion de bases de données joue un rôle
central en informatique, aussi bien en tant qu'application à part entière,
qu'intégré dans d'autres logiciels.
MySQL est un serveur de bases de données relationnel.
SQL dans
``MySQL'' signifie ``Structured Query Language'' : le langage
standard pour les traitements de bases de données.
MySQL est Open Source.
Open Source (Standard Ouvert) signifie qu'il est possible à chacun
d'utiliser et de modifier le logiciel. Tout le monde peut télécharger
MySQL sur Internet, et l'utiliser sans payer aucun droit. Toute personne
en ayant la volonté peut étudier et modifier le code source pour l'adapter à
ses besoins propres. Le logiciel MySQL utilise la licence
GPL (GNU General Public License),
http://www.gnu.org/licenses/, pour définir ce que vous pouvez et ne
pouvez pas faire avec ce logiciel, dans différentes situations. Si vous ne
vous sentez pas confortable avec la licence GPL ou bien que vous
devez intégrer MySQL dans une application commerciale, vous pouvez acheter
une licence commercial auprès de MySQL AB.
See section 1.4.3 Licences MySQL.
MySQL?
serveur de bases de données MySQL est très rapide, fiable
et facile à utiliser. Si c'est ce que vous recherchez, vous devriez faire
un essai. Le serveur de bases de données MySQL dispose aussi de
fonctionnalités pratiques, développées en coopération avec nos utilisateurs.
Vous pouvez trouver une comparaison des performances du
serveur MySQL avec d'autres systèmes de bases de données dans
nos pages de tests de performances.
See section 5.1.4 La suite de tests MySQL.
Le serveur MySQL a été développé à l'origine pour gérer de grandes bases
de données plus rapidement que les solutions existantes, et a été utilisé
avec succès dans des environnements de production très contraints et
très exigeants, depuis plusieurs années. Bien que toujours en développement,
le Le serveur MySQL offre des fonctions nombreuses et puissantes. Ses
possibilités de connexions, sa rapidité et sa sécurité font du serveur MySQL
une serveur hautement adapté à Internet.
serveur MySQL.
logiciel de bases de données MySQL est un système client/serveur,
constitué d'un serveur SQL multi-threadé qui supporte différents
systèmes de stockage, plusieurs logiciels clients et librairies, outils
d'administration, ainsi que de nombreuses interfaces de programmation
(des API).
Nous fournissons aussi le serveur MySQL sous la forme d'une librairie multi-threadé
que vous pouvez inclure dans vos applications, pour obtenir un produit plus
compact, plus rapide et plus facile à gérer.
MySQL.
serveur de base de données MySQL.
La prononciation officielle de MySQL est ``My Ess Que Ell'' (en anglais),
ce qui donne ``Maille Esse Cu Elle'' en phonétique française. Evitez d'utiliser
la prononciation ``my sequel'', mais nous ne nous formaliserons pas que vous utilisiez
``my sequel'' ou une autre prononciation adaptée.
Nous avons débuté avec l'intention d'utiliser mSQL pour se connecter
à nos tables en utilisant nos propres routines bas niveau ISAM. Cependant,
après quelques tests, nous sommes arrivés à la conclusion que
mSQL n'était pas assez rapide et flexible pour nos besoins. Cela nous a
conduit à créer une nouvelle interface SQL pour notre base de données, mais
en gardant la même API que mSQL. Cette API a été choisie pour la facilité
de port des programmes de tiers.
Les liens avec le nom MySQL ne sont pas parfaitement établis. Notre dossier
de base et un grand nombre de librairies et outils étaient préfixés par
``my'' depuis plus de 10 ans. Mais la fille de Monty, plus jeune que lui, était
aussi appelée My. Lequel des deux a conduit au nom de MySQL est toujours un
mystère, même pour nous.
Le nom du dauphin MySQL (notre logo) est Sakila, qui a été choisi par les
fondateurs de MySQL AB à partir d'une grande liste de noms suggérés par les
utilisateurs dans le concours "Name the Dolphin" ("Nommez le dauphin").
Le nom a été suggéré par Ambrose Twebaze, un développeur de softwares open source
de Swaziland, Afrique.
D'après Ambrose, le nom Sakila puise ses origines du SiSwati, la langue locale du
Swaziland. Sakila est aussi le nom d'une ville dans Arusha, Tanzanie, près
du pays d'origine d'Ambrose, Uganda.
La liste suivante décrit les caractéristiques principales du
logiciel de bases de données MySQL. See section 1.5 MySQL 4.0 In A Nutshell.
MySQL est vérifié avec Purify (un utilitaire de
détection des fuites mémoires commercial) ainsi qu'avec Valgrind,
un outil GPL (http://developer.kde.org/~sewardj/).
FLOAT, DOUBLE, CHAR, VARCHAR,
TEXT, BLOB, DATE, TIME, DATETIME,
TIMESTAMP, YEAR, SET et ENUM.
See section 6.2 Types de colonnes.
INSERT pour insérer un sous ensemble
de colonnes : les colonnes qui ne sont pas explicitement cités prennent
alors leur valeur par défaut.
SELECT
et la clause WHERE. Par exemple :
mysql> SELECT CONCAT(first_name, " ", last_name)
-> FROM tbl_name
-> WHERE income/dependents > 10000 AND age > 30;
GROUP BY et
ORDER BY. Support des fonctions de groupages
(COUNT(), COUNT(DISTINCT ...),
AVG(), STD(),
SUM(), MAX() et MIN()).
LEFT OUTER JOIN et RIGHT OUTER JOIN avec les
syntaxes ANSI SQL et ODBC.
DELETE, INSERT, REPLACE et UPDATE retourne
le nombre de lignes affectées. Il est possible d'obtenir le nombre de lignes
trouvées en modifiant une option lors de la connexion au serveur.
MySQL SHOW est utilisée pour obtenir
des informations sur les bases, tables et index. La commande EXPLAIN
sert à optimiser les requêtes.
ABS est un nom de colonne valide. La seule restriction est que,
lors d'un appel de fonction, aucun espace n'est toléré entre le nom de la fonction et
la parenthèse ouvrante `(' suivante. See section 6.1.7 Est-ce que MySQL est sensible aux mots réservés ?.
serveur MySQL
avec des bases qui contiennent 50 millions de lignes et nous connaissons des
utilisateurs qui utilisent le serveur MySQL avec plus de
60 000 tables and et 5 000 000 000 (milliards) de lignes.
serveur MySQL. Un index peut utiliser un préfixe issu d'un champs
CHAR ou VARCHAR.
MySQL en utilisant les sockets
TCP/IP, les sockets Unix (Unix) ou les Named Pipes (NT).
ODBC (Open-DataBase-Connectivity) pour Win32 (avec les sources).
Toutes les fonctions ODBC 2.5 et de nombreuses autres. Par exemple, vous pouvez
utiliser MS Access pour vous connecter au serveur MySQL. See section 8.3 Support ODBC avec MySQL.
MySQL
est démarré. Pour voir un exemple très avancé de tri, voyez le code
de tri pour le Tchèque. Le serveur MySQL supporte de nombreux jeux
de caractères qui peuvent être spécifié à la compilation et durant l'exécution.
myisamchk, un utilitaire rapide pour vérifier les tables,
les optimiser et les réparer. Toutes les fonctionnalités de myisamchk
sont aussi disponibles via l'interface SQL.
See section 4 Administration du serveur.
MySQL peuvent être appelés avec l'option --help
ou -? pour obtenir de l'aide en ligne.
Cette section répond aux questions ``Jusqu'à quel point MySQL est il stable ?'' et ``Puis-je faire confiance à MySQL pour mon projet ?'' Nous allons tenter d'apporter des réponses claires à ces questions importantes qui concernent tous les utilisateurs potentiels. Les informations de cette section sont fournies par les listes de diffusions, qui sont très actives et promptes à identifier les problèmes et les rapporter.
Le code original date du début des années 80 et fournit une base de
code stable, tout en assurant une compatibilité ascendante avec le
format ISAM.
A TcX, le prédécesseur de MySQL AB, le code de MySQL a fonctionné
sur des projets depuis la mi 1996, sans aucun problème. Lorsque le
Serveur MySQL a été livré à un public plus large, nous avons réalisé
qu'il contenait du code ``jamais testé'' qui a été rapidement identifié par les
utilisateurs, qui effectuait des requêtes différentes des nôtres. Chaque nouvelle
version avait moins de problèmes de portabilité, même si chaque nouvelle
version avait de nombreuses nouvelles fonctionnalités.
Chaque version du Serveur MySQL était parfaitement fonctionnelle.
Les seuls problèmes étaient rencontrés par les utilisateurs de
code de ces ``zone d'ombres''. Naturellement, les nouveaux utilisateurs
ne connaissent pas ces zones : cette section tente de les présenter,
dans la mesure de nos connaissances.
Les descriptions correspondent surtout aux versions 3.23 du Serveur MySQL.
Tous les bogues connus et rapportés ont été corrigés dans la dernière version,
à l'exception de ceux qui sont listés dans la section Bugs, qui sont
des problèmes de conception. See section 1.8.5 Erreurs connues, et limitations de MySQL.
La conception du serveur MySQL est faite en plusieurs couches,
avec des modules indépendants. Certains des modules les plus récents
sont listés ici, avec leur niveau de test :
MySQL 4.x.
InnoDB -- Stable (en 3.23 depuis 3.23.49)
InnoDB a été déclaré
stable en MySQL version 3.23, à partir de la version 3.23.49.
InnoDB est utilisé dans de grands systèmes complexes, avec
forte charge.
BDB -- Gamma
Berkeley DB est très stable, mais nous sommes encore
en train d'améliorer l'interface du gestionnaire transactionnel de
table BDB du serveur MySQL. Cela demande encore du temps
pour qu'il soit aussi bien testé que les autres types de tables.
FULLTEXT -- Beta
MySQL 4.0.
MyODBC 2.50 (utilise ODBC SDK 2.5) -- Gamma
MyISAM -- Gamma
MyISAM qui vérifie si la table a été correctement fermée lors
de l'ouverture, et qui exécute automatiquement la vérification
et réparation éventuelles de la table.
MyISAM pour MySQL 4.0 qui
permet des insertions plus rapides.
fcntl()). Dans ces cas, il faut
utiliser mysqld avec l'option --skip-external-locking.
Les problèmes sont connus sur certaines distributions Linux, et sur
SunOS lorsqu'il est utilisé avec des disques en mode NFS.
MySQL AB fournit un support de première qualité pour les clients
payant, mais les listes de diffusions de MySQL sont généralement
rapides à donner des réponses aux questions les plus communes. Les bogues
sont généralement corrigés aussitôt avec un patch. Pour les bogues
sérieux, il y a presque toujours une nouvelle version.
MySQL version 3.22 a une limite de 4Go par table. Avec le nouveau
format de table MyISAM, disponible avec MySQL version 3.23,
la taille maximale des tables a été poussée à 8 millions de teraoctets (2 ^ 63 octets).
Notez, toutefois, que les systèmes d'exploitation ont leur propres limites. Voici quelques exemples :
| Système d'exploitation | Limite |
| Linux-Intel 32 bit | 2Go, 4Go ou plus, suivant la version de Linux |
| Linux-Alpha | 8To (?) |
| Solaris 2.5.1 | 2Go (4Go possibles avec un patch) |
| Solaris 2.6 | 4Go (peut être modifié avec une option) |
| Solaris 2.7 Intel | 4Go |
| Solaris 2.7 UltraSPARC | 512Go |
En Linux 2.2, vous pouvez avoir des tables plus grandes que 2Go en utilisant le patch LFS pour les systèmes de fichiers ext2. En Linux 2.4, le patche existe aussi pour ReiserFS.
Cela signifie que les tables MySQL sont généralement limitées par
le système d'exploitation.
Par défaut, les tables MySQL peuvent atteindre une taille de 4Go.
Vous pouvez vérifier la taille des tables avec la commande SHOW TABLE STATUS
ou la commande en ligne myisamchk -dv nom_de_table.
See section 4.5.6 Syntaxe de SHOW.
Si vous avez besoin de tables plus grandes que 4Go (et que votre système
d'exploitation le supporte, modifiez les paramètres AVG_ROW_LENGTH et MAX_ROWS
lorsque vous créez votre table. See section 6.5.3 Syntaxe de CREATE TABLE. Vous pouvez aussi
les modifier ultérieurement avec ALTER TABLE. See section 6.5.4 Syntaxe de ALTER TABLE.
Si vos tables sont accessibles uniquement en lecture, vous pouvez aussi
utiliser l'utilitaire myisampack pour rassembler et compresser plusieurs
tables en une seule. myisampack compresse généralement la table
de près de 50%, ce qui vous augmente d'autant la taille maximale de la
table. See section 4.7.4 myisampack, le générateur de tables MySQL compressées en lecture seule.
Vous pouvez aussi contourner les limites du système d'exploitation
avec les tables MyISAM, en utilisant l'option RAID. See section 6.5.3 Syntaxe de CREATE TABLE.
Une autre solution est d'utiliser la librairie MERGE, qui permet de
gérer plusieurs tables comme une seule.
See section 7.2 Tables assemblées MERGE.
Le serveur MySQL lui même n'a aucun problème de compatibilité
avec l'an 2000 (Y2K) :
serveur MySQL utilise les fonctions de date Unix, et n'a aucun
problème avec les dates jusqu'en 2069; toutes les années écrites en
deux chiffres sont supposées faire partie de l'intervalle allant de
1970 à 2069, ce qui signifie que si vous stockez la date
01 dans une colonne de type year, le serveur MySQL la
traitera comme 2001.
MySQL sont stockées dans un fichier
`sql/time.cc', et sont codées très soigneusement pour être compatibles
avec l'an 2000.
MySQL version 3.22 et plus récent, le type de colonne YEAR
peut stocker les valeurs 0 et de 1901 à 2155 sur un seul
octet, tout en affichant 2 ou 4 chiffres.
Vous pouvez rencontrer des problèmes avec les applications qui utilisent le serveur MySQL
sans être compatible avec l'an 2000. Par exemple, les vieilles applications
utilisent des valeurs d'années sur deux chiffres (ce qui est ambigu), plutôt
qu'avec 4 chiffres. Ce problème peut être complété par des applications qui
utilisent des valeurs telles que 00 ou 99 comme indicateur
de données ``manquante''.
Malheureusement, ces problèmes peuvent se révéler difficiles à corriger car différentes applications peuvent être écrites par différents programmeurs, et chacun utilise un jeu différent de conventions et de fonctions de gestion des dates.
Voici une illustration simple qui montre que le serveur MySQL
n'a aucun problème avec les dates jusqu'en 2030 :
mysql> DROP TABLE IF EXISTS y2k;
Query OK, 0 rows affected (0.01 sec)
mysql> CREATE TABLE y2k (date DATE,
-> date_time DATETIME,
-> time_stamp TIMESTAMP);
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO y2k VALUES
-> ("1998-12-31","1998-12-31 23:59:59",19981231235959),
-> ("1999-01-01","1999-01-01 00:00:00",19990101000000),
-> ("1999-09-09","1999-09-09 23:59:59",19990909235959),
-> ("2000-01-01","2000-01-01 00:00:00",20000101000000),
-> ("2000-02-28","2000-02-28 00:00:00",20000228000000),
-> ("2000-02-29","2000-02-29 00:00:00",20000229000000),
-> ("2000-03-01","2000-03-01 00:00:00",20000301000000),
-> ("2000-12-31","2000-12-31 23:59:59",20001231235959),
-> ("2001-01-01","2001-01-01 00:00:00",20010101000000),
-> ("2004-12-31","2004-12-31 23:59:59",20041231235959),
-> ("2005-01-01","2005-01-01 00:00:00",20050101000000),
-> ("2030-01-01","2030-01-01 00:00:00",20300101000000),
-> ("2050-01-01","2050-01-01 00:00:00",20500101000000);
Query OK, 13 rows affected (0.01 sec)
Records: 13 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM y2k;
+------------+---------------------+----------------+
| date | date_time | time_stamp |
+------------+---------------------+----------------+
| 1998-12-31 | 1998-12-31 23:59:59 | 19981231235959 |
| 1999-01-01 | 1999-01-01 00:00:00 | 19990101000000 |
| 1999-09-09 | 1999-09-09 23:59:59 | 19990909235959 |
| 2000-01-01 | 2000-01-01 00:00:00 | 20000101000000 |
| 2000-02-28 | 2000-02-28 00:00:00 | 20000228000000 |
| 2000-02-29 | 2000-02-29 00:00:00 | 20000229000000 |
| 2000-03-01 | 2000-03-01 00:00:00 | 20000301000000 |
| 2000-12-31 | 2000-12-31 23:59:59 | 20001231235959 |
| 2001-01-01 | 2001-01-01 00:00:00 | 20010101000000 |
| 2004-12-31 | 2004-12-31 23:59:59 | 20041231235959 |
| 2005-01-01 | 2005-01-01 00:00:00 | 20050101000000 |
| 2030-01-01 | 2030-01-01 00:00:00 | 20300101000000 |
| 2050-01-01 | 2050-01-01 00:00:00 | 00000000000000 |
+------------+---------------------+----------------+
13 rows in set (0.00 sec)
Cet exemple montre que les types DATE et DATETIME ne poseront
aucun problème avec les dates futures (ils gèrent les dates jusqu'en 9999).
Le type TIMESTAMP, qui est utilisé pour stocker la date courante,
est valide jusqu'en 2030-01-01. TIMESTAMP va de
1970 en 2030 sur les machines 32 bits (valeur signée). Sur les
machines 64 bits, il gère les dates jusqu'en 2106 (valeur non signée).
Même si le serveur MySQL est compatible an 2000, il est de votre responsabilité
de fournir des données non ambiguës. Voyez section 6.2.2.1 An 2000 et les types date pour les règles du
serveur MySQL pour traiter les dates ambiguës (les données contenant des
années exprimées sur deux chiffres).
MySQL AB est l'entreprise des fondateurs de MySQL et les
principaux développeurs. A l'origine, MySQL AB a été établie
en Suède, par David Axmark, Allan Larsson et Michael Monty Widenius.
Tous les développeurs du serveur MySQL sont employés par l'entreprise.
Nous sommes une organisation virtuelle, avec des employés répartis dans
une douzaine de pays à travers le monde. Nous communiquons intensivement
entre nous sur l'Internet tous les jours, et avec nos utilisateurs,
fans et partenaires.
Nous nous consacrons au développement du logiciel MySQL et à
la diffusion de notre base de données auprès des nouveaux utilisateurs.
MySQL AB est propriétaire des droits du code source de
MySQL, du logo MySQL et de la marque de commerce,
ainsi que du manuel. See section 1.2 Qu'est ce que MySQL?.
Les valeurs fondamentales de MySQL témoignent de notre
implication auprès de MySQL et des
Logiciels libres.
Nous souhaitons que la base de données MySQL soit :
MySQL AB et les collaborateurs de MySQL AB :
logiciels libres et supportent la communauté
des Logiciels libres.
Le site web de MySQL (http://www.mysql.com/)
fournit les dernières informations à propos de MySQL et MySQL AB.
Une des questions les plus fréquentes que nous rencontrons est : ``Comment arrivez-vous à vivre en développant un produit gratuit ?'' Voici comment.
MySQL AB fait des affaires en vendant du support, des services,
des licences commerciales et en percevant des royalties. Nous utilisons
ces fonds pour le développement des produits et des affaires de
MySQL.
La compagnie est profitable depuis sa conception. En octobre 2001, nous avons accepté un financement de la part d'un groupe d'investisseurs scandivanes important et de quelques business angels. Cet investissement est utilisé pour consolider notre modèle d'affaires et assurer les bases de notre croissance à long terme.
MySQL AB est dirigé par ses propriétaires, qui sont les fondateurs
et les principaux développeurs de la base de données MySQL. Les
développeurs se consacrent au support des utilisateurs et des autres
utilisateurs, afin de rester au courant de leurs besoins et leurs problèmes.
Tout notre support est donné par des développeurs qualifiés. Les
questions vraiment épineuses sont étudiées par Michael Monty Widenius,
auteur principal du code du serveur MySQL.
See section 1.4.1 Support proposé par MySQL AB.
Pour plus d'informations et pour commander un support de différents niveaux, voyez http://www.mysql.com/support/ ou contactez notre équipe de vente à sales@mysql.com.
MySQL AB organise des formations MySQL à travers le monde entier.
Nous offrons des cours inter et intra entreprise, adaptés aux besoins spécifiques
de chaque société. La formation MySQL est aussi disponible auprès de
nos partenaires, les centres de formation certifiés MySQL.
Nos documents de formation utilisent les mêmes exemples de bases de données
que notre documentation et nos applications d'exemple, et ils sont toujours
mis à jour pour prendre en compte les dernières versions de MySQL.
Nos formateurs sont épaulés par notre équipe de développement pour garantir la
qualité de la formation et le développement continu des documents de cours.
Cela vous assure aussi qu'il n'y aura pas de questions laissées ouvertes
durant les cours.
Suivre nos formations vous permettra d'atteindre tous vos buts avec
votre application MySQL. Vous allez aussi :
certification MySQL.
Si vous êtes intéressé par nos formations, en tant que participant potentiel, ou comme partenaire de formation, visitez la section de formation à http://www.mysql.com/training/ ou contactez-nous à : training@mysql.com.
Le programme de certification MySQL est publié dans le second
semestre 2002. Pour plus de détails, voyez
http://www.mysql.com/certification/.
MySQL AB et ses partenaires accrédités offrent des
services de conseil aux utilisateurs du serveur MySQL et
à ceux qui intègrent le serveur MySQL dans leurs logiciels, à
travers le monde.
Nos consultants peuvent vous aider à concevoir et paramétrer vos
bases, construire des requêtes efficaces, optimiser votre plate-forme,
résoudre les problèmes de migration, installer la réplication,
bâtir des applications transactionnelles robustes et bien plus encore.
Nous aidons aussi les clients à intégrer le serveur MySQL dans
leurs produits et applications, pour un déploiement d'envergure.
Nos consultants travaillent en collaboration étroite avec notre équipe
de développement pour assurer la qualité technique de nos
services professionnels. Les missions de conseil peuvent aller de
sessions de démarrage de deux jours à des projets de plusieurs semaines
ou mois. Notre expertise couvre non seulement le serveur MySQL,
mais s'étend aussi aux langages de programmation tels que PHP, Perl et
d'autres encore.
Si vous êtes interessé par nos services de conseil ou si vous souhaitez devenir un partenaire conseil, visitez la section conseil de notre site web à http://www.mysql.com/consulting/ ou contactez notre équipe de conseil à consulting@mysql.com.
La base de données MySQL est publiée sous la licence
GNU General Public License (GPL).
Cela signifie que le logiciel MySQL peut être utilisé gratuitement,
en acceptant les termes de la licence GPL. Si vous ne voulez pas
être lié par les termes de la licence GPL (comme le fait que
votre application aussi doit être GPL), vous pouvez acheter une licence
du même produit auprès de MySQL AB.
Voyez http://www.mysql.com/support/arrangements/price.html.
Comme MySQL AB est propriétaire du copyright du code source de MySQL,
nous pouvons utiliser une double licence, qui fait que le même produit
est disponible sous la licence GPL et sous une licence commerciale.
Cela ne change en rien l'implication de MySQL AB dans le
mouvement des logiciels libres. Pour plus de détails sur quand
une licence commerciale est nécessaire, voyez section 1.4.3 Licences MySQL.
Nous vendons aussi des licences commerciales aux logiciels Open Source GPL
qui ajoutent à la valeur du serveur serveur MySQL. Un bon exemple est
le gestionnaire de table transactionnel InnoDB qui offre le support
ACID, le verrouillage de ligne, la restauration après crash, le
multi versionnage, le support des clés étrangères, etc.
See section 7.5 Tables InnoDB.
MySQL AB a un programme de partenariat mondial qui couvre la formation,
le conseil et le support, les publications, la revente et la distribution des
produits MySQL. Les partenaires MySQL AB gagnent en visibilité
grâce au site http://www.mysql.com/ et le droit d'utiliser certaines
versions spéciales des marques de commerce MySQL pour identifier
leurs produits et promouvoir leur entreprise.
Si vous êtes intéressé à devenir un partenaire MySQL AB, envoyez un
email à partner@mysql.com.
Le mot MySQL et le logo MySQL avec le dauphin sont des
marques commerciales de MySQL AB. See section 1.4.4 Logos MySQL AB et marque déposée.
Ces marques représentent un investissement capital que les fondateurs
de MySQL ont placé depuis plusieurs années.
Le site web MySQL (http://www.mysql.com/) est très populaire auprès
des développeurs et des utilisateurs. En Octobre 2001, nous avons eu 10 millions de pages vues.
Nos visiteurs représentent un groupe effectuant des décisions d'achat et des recommandations
pour le matériel et les logiciels. Douze pour cents de nos visiteurs émettent des décisions d'achat,
et seulement 9 % n'en prennent pas du tout. Plus de 65 % d'entre eux ont effectué un
ou plusieurs achats sur internet ces six derniers mois, et 70 % prévoient d'en faire un dans le mois à venir.
Le site web de MySQL (http://www.mysql.com/)
fournit les dernières informations à propos de MySQL et
MySQL AB.
Pour les contacts presse et les questions qui ne sont pas couvertes par les annonces officielles (http://www.mysql.com/news/), envoyez un email à press@mysql.com.
Si vous avez un contrat de support valide avec MySQL AB, vous obtiendrez
des réponses rapides et précises de notre équipe technique sur le
logiciel MySQL. Pour plus d'informations, voyez section 1.4.1 Support proposé par MySQL AB.
Sur notre site web, voyez http://www.mysql.com/support/,
ou envoyez un email à sales@mysql.com.
Pour des informations sur les formations MySQL, visitez la
section formation à http://www.mysql.com/training/. Si vous
avez un accès restreint à Internet, contactez l'équipe de formation
de MySQL AB à l'adresse training@mysql.com.
See section 1.3.1.2 Formation et certification.
Pour des informations sur le programme de certification MySQL,
voyez la section http://www.mysql.com/certification/.
See section 1.3.1.2 Formation et certification.
Si vous êtes interessé par du conseil, visitez la section conseil
à http://www.mysql.com/consulting/. Si vous avez un accès restreint
à Internet, contactez l'équipe de conseil de MySQL AB
à consulting@mysql.com.
See section 1.3.1.3 Conseil.
Les licences commerciales peuvent être commandées en ligne à
http://order.mysql.com/. Vous trouverez aussi des informations
sur les commandes par fax à MySQL AB. Plus d'informations sur les
licences sont disponibles à
http://www.mysql.com/products/pricing.html.
Si vous avez des questions qui concernent les licences ou que vous
souhaitez un devis pour un achat de nombreuses licences, remplissez
le formulaire de contact disponible sur le site web
(http://www.mysql.com/) ou envoyez un email à
licensing@mysql.com (pour les questions de licence) ou à
sales@mysql.com (pour les devis).
See section 1.4.3 Licences MySQL.
Si vous représentez une entreprise qui est interessée par un partenariat
avec MySQL AB, envoyez un email à partner@mysql.com.
See section 1.3.1.5 Partenariats.
Pour plus d'informations sur la politique de marque de commerce de MySQL,
reportez-vous à http://www.mysql.com/company/trademark.html ou
envoyez un email à trademark@mysql.com.
See section 1.4.4 Logos MySQL AB et marque déposée.
Si vous êtes interessé par un des emplois à MySQL AB présentés dans notre
section job (http://www.mysql.com/company/jobs/),
envoyez un email à jobs@mysql.com.
N'envoyez pas votre CV en pièce jointe, mais collez-le dans le corps du texte
à la fin de votre message.
Pour des discussions générales entre utilisateurs, dirigez vos questions sur la liste de diffusion appropriée. See section 1.7.1 Listes de diffusion MySQL.
Les rapports d'erreurs (aussi appelés bogues), ainsi que les questions
et suggestions doivent être envoyés à la liste de diffusion
mysql@lists.mysql.com. Si vous avez trouvé un trou de sécurité
critique dans le serveur MySQL, envoyez votre courriel
à security@mysql.com.
See section 1.7.1.3 Comment rapporter un bogue ou un problème.
Si vous avez un résultat de test que nous pouvons publier, contactez-nous à benchmarks@mysql.com.
Si vous avez des suggestions concernant les améliorations ou les corrections de ce manuel, envoyez-les à l'équipe du manuel docs@mysql.com. Pour les remarques spécifiques à la version française, vous pouvez aussi contacter directement Damien Seguy à damien.seguy@nexen.net.
Pour les questions ou commentaires à propos du fonctionnement
ou du contenu du site web MySQL (http://www.mysql.com/),
envoyez un email à webmaster@mysql.com.
MySQL AB a une politique de protection des données privées
qui est présentée à http://www.mysql.com/company/privacy.html.
Pour toutes les questions concernant cette politique,
envoyez un email à privacy@mysql.com.
Pour toutes les autres questions, envoyez un email à info@mysql.com.
Cette section décrit le support MySQL et les accords de licence.
Le support technique de MySQL AB est la réponse individualisée
à vos problèmes particuliers, en direct, de l'équipe d'ingénieurs qui
programme la base de données MySQL.
Nous tâchons d'avoir un support technique exhaustif et global. Presque
tous les problèmes qui impliquent MySQL sont importants pour nous,
s'ils sont importants pour vous.
Typiquement, les clients qui recherchent de l'aide sur les différentes
commandes, qui souhaitent résoudre des problèmes de performance,
réparer des systèmes corrompus, comprendre les impacts des
systèmes d'exploitation ou des réseaux sur les performances de
MySQL, mettre en place des bonnes pratiques pour la sauvegarde
et l'entretien, utiliser les APIs, etc.
Notre support couvre uniquement le serveur MySQL et nos propres
utilitaires, pas les produits tiers d'entreprises qui accèdent
au serveur MySQL, même si nous pouvons parfois aider.
Les informations détaillées sur les différents niveaux de support sont disponibles à http://www.mysql.com/support/, et les contrats de support peuvent aussi être commandés en ligne. Si vous avez un accès restreint à Internet, vous pouvez contacter notre équipe commerciale à sales@mysql.com.
Le support technique est identique à l'assurance vie. Vous pouvez vivre
très heureux sans pendant plusieurs années, mais lorsque vous rencontrerez
une catastrophe, il sera trop tard pour l'acheter. Si vous utilisez
MySQL pour des applications importantes et que vous rencontrez des
problèmes, cela peut vous prendre très longtemps pour comprendre par vous-
même. Vous pourriez alors avoir besoin de communiquer avec les
techniciens les plus expérimentés de MySQL, ceux qui sont
employés par MySQL AB.
MySQL AB est propriétaire du copyright du code source de MySQL,
des logos MySQL, de la marque de commerce et de ce manuel.
See section 1.3 Qui est MySQL AB ?.
Plusieurs licences distinctes sont disponibles pour la diffusion de MySQL :
MySQL pour le serveur, le client mysqlclient
et la librairie, ainsi que la librairie GNU readline sont couverts par la
licence GNU General Public License.
See section G Licence Publique Générale GNU.
Le texte de cette licence est aussi disponible dans le fichier intitulé
`COPYING' dans les distributions.
GNU getopt est sous la licence
GNU Lesser General Public License.
See section H Licence Publique Générale GNU Limitée.
regexp) sont placées sous
un copyright de type Berkeley.
MySQL (3.22 et plus récentes) sont sujettes à
des licences plus strictes
(http://www.mysql.com/support/arrangements/mypl.html).
Voyez la documentation spécifique de chaque version pour plus de détails.
GPL. L'utilisation du manuel est sujette à ces conditions :
MySQL AB.
Pour plus de détails sur comment les licences MySQL fonctionnent,
voyez section 1.4.3 Licences MySQL.
Voyez aussi section 1.4.4 Logos MySQL AB et marque déposée.
Le logiciel MySQL est publié sous la licence
GNU General Public License (GPL),
qui est probablement mieux connue sous le nom de Open Source.
Les termes exacts de la licence GPL sont disponibles sur le site
de http://www.gnu.org/licenses/.
Voyez aussi http://www.gnu.org/licenses/gpl-faq.html et
http://www.gnu.org/philosophy/enforcing-gpl.html.
Comme le logiciel MySQL est publié sous la licence GPL,
il est souvent utilisé gratuitement, mais pour certains usages vous
souhaiterez peut-être acheter une licence commerciale auprès de
MySQL AB à http://order.mysql.com/.
Voyez http://www.mysql.com/support/arrangements.html pour plus
d'informations.
Les anciennes versions de MySQL (3.22 et plus anciennes) sont sujettes
à une licence plus stricte
(http://www.mysql.com/support/arrangements/mypl.html).
Voyez la documentation spécifique de chaque version pour information.
Notez bien que l'utilisation du logiciel MySQL sous une licence
commerciale. GPL, ou toute autre ancienne licence MySQL ne
vous donne pas automatiquement le droit d'utiliser les marques commerciales
de MySQL AB.
See section 1.4.4 Logos MySQL AB et marque déposée.
La licence GPL est contagieuse, dans le sens où lorsqu'un programme
est lié à la licence GPL, toutes les sources de toutes les parties
du produit final doivent aussi être publiée sous la licence GPL.
Sinon, vous violez la licence, et annulez vos droits d'utiliser le
programme GPL.
Vous avez besoin d'une licence commerciale pour :
GPL issu de MySQL
et que vous ne voulez pas que le produit final soit publié sous la licence
GPL, peut être parce que vous souhaitez publier un produit commercial
ou conserver du code non-GPL pour d'autres raisons. Lorsque vous achetez
une licence commerciale vous n'utilisez plus MySQL sous la licence
GPL, même si c'est le même code.
GPL qui fonctionne
uniquement avec MySQL, et que vous distribuez cette application
avec MySQL. Ce type de solution est considéré comme un lien,
même si c'est fait via le réseau.
MySQL sans fournir le code
source original, comme requis par la licence GPL.
MySQL
même si vous n'avez pas besoin formellement de la licence commerciale.
Acheter du support auprès de MySQL AB est une autre bonne solution
pour contribuer au développement de MySQL, avec des avantages directs
pour vous.
See section 1.4.1 Support proposé par MySQL AB.
Si vous avez besoin d'une licence, vous en aurez besoin d'une pour chaque
installation de MySQL. Cela est valable quelque soit le nombre de
processeurs de la machine, et il n'y a pas de limite artificielle de
nombre de connexion simultanées.
Pour les licences commerciales, voyez notre site web http://www.mysql.com/support/arrangements/price.html. Pour les contrats de support, voyez http://www.mysql.com/support/. Si vous avez des besoin spéciaux, ou que vous avez un accès restreint à internet, contactez notre équipe de vente à sales@mysql.com.
Vous pouvez utiliser le logiciel MySQL sous la licence gratuite GPL
si vous acceptez les termes et conditions de la licence GPL.
Pour une liste exhaustive des questions courantes à propos de
la licence GPL, voyez la FAQ générale de la Free Software Foundation à
http://www.gnu.org/licenses/gpl-faq.html.
Quelques cas courants :
MySQL,
ensemble avec la licence GPL.
MySQL avec d'autres
programmes qui ne sont pas liés ou dépendant de MySQL pour leur
fonctionnalités, même si vous vendez la distribution commercialement.
Ceci s'appelle une agrégation simple en termes GPL.
MySQL,
vous pouvez l'utiliser gratuitement.
MySQL.
Cependant, nous vous encourageons à faire affaires avec un ISP qui
dispose du support MySQL, car cela vous donne l'assurance que si
votre hébergeur a des problèmes avec l'installation de MySQL,
votre hébergeur aura les ressources pour résoudre votre problème.
Notez que si votre ISP n'a pas de licence commerciale pour le
le MySQL, il devrait au moins fournir l'accès en lecture
aux sources aux clients pour qu'ils vérifient que l'installation de
MySQL est correctement patchée.
MySQL en conjonction
avec un serveur web, vous n'avez pas besoin de licence commerciale (aussi longtemps
que ce n'est pas un produit que vous distribuez). Ceci est même vrai si vous
avec un serveur web qui utilise le serveur MySQL, car vous ne
distribuez pas de partie de MySQL. Cependant, dans ce cas, nous vous
demandons d'acheter du support MySQL car
MySQL aide votre entreprise
Si vous utilisez le serveur de bases de données MySQL sans avoir
besoin de licence commerciale, nous vous encourageons à acheter le support
auprès de MySQL AB malgré tout. De cette façon, vous contribuez
au développement de MySQL et en obtenez des avantages immédiats
vous-même. See section 1.4.1 Support proposé par MySQL AB.
Si vous utilisez MySQL dans un contexte commercial tel que vous en tirez
profit, nous vous demandons de participer au développement de MySQL
en achetant du support. Nous pensons que comme MySQL aide votre
entreprise, il est raisonnable de vous demander d'aider à votre tour
MySQL AB.
(Sinon, lorsque vous nous posez des questions de support, non seulement vous
utilisez gratuitement un système dans lequel nous avons investi beaucoup
de temps, mais en plus, vous nous demandez du support gratuit, en plus !)
Beaucoup d'utilisateurs de MySQL souhaitent afficher le logo du dauphin
MySQL AB sur leur sites web, leur livres ou leurs produits. Nous encourageons
ces actes, tant qu'on part du principe que le mot MySQL et le logo du dauphin
MySQL sont des marques déposées par MySQL AB et ne doivent être utilisés
que dans les conditions décrites à la page suivante : http://www.mysql.com/company/trademark.html.
Le dauphin MySQL a été conçu par l'agence de publicité finlandaise
Priority, en 2001. Le dauphin a été choisi en tant que symbole représentatif
de MySQL, car c'est un animal intelligent, rapide et élancé,
qui parcourt sans effort l'océan des données. Nous aimons aussi les dauphins.
Le logo original de MySQL ne peut être utilisé que par les représentants
de MySQL AB et par ceux qui ont un accord signé leur permettant de le faire.
Nous avons conçu un jeu de logos qui peuvent être utilisés sous conditions, et
qui peuvent être téléchargés depuis notre site web à
http://www.mysql.com/press/logos.html
et utilisés sur les sites web tiers sans autorisation écrite de
MySQL AB.
L'utilisation de ces logos n'est pas inconditionnelle, mais, comme
leur nom l'implique, sujette à notre politique de marque de commerce
qui est aussi disponible sur notre site web. Il est recommandé de lire
ce document avant d'utiliser les logos sur votre site web. En bref, les
pré-requis sont :
MySQL AB,
êtes le créateur de ce site, qui arbore les couleurs de MySQL.
MySQL AB
ou aux valeurs de MySQL AB. Nous nous réservons le droit de
retirer notre autorisation d'utiliser le logo de MySQL AB.
MySQL sous licence GPL dans
votre application, votre application doit porter la mention Open Source
et être capable de se connecter à un serveur MySQL.
Contactez-nous à trademark@mysql.com pour voir avec nous tous les arrangements spéciaux qui vous conviendraient.
Dans les cas suivants vous devez obtenir une permission écrite de MySQL AB
avant d'utiliser les logos MySQL :
MySQL AB n'importe où, en dehors de
votre site web.
MySQL AB hormis les logos
à utilisation conditionnée mentionnés auparavant sur le
site web, ou ailleurs
En dehors des raisons commerciales et légales, nous nous devons de suivre
l'utilisation du logo MySQL sur les produits, livres, etc. Nous demanderons
une compensation pour l'affichage des logos MySQL AB sur les produits,
car nous pensons qu'il est raisonnable qu'une partie des revenus ainsi générés
servent à poursuivre le développement de la base de données MySQL.
Le logo partenariat MySQL ne doit être utilisé que par les compagnies
et les personnes ayant un partenariat écrit avec MySQL AB
Le partenariat inclut une certification en tant que consultant ou professeur MySQL.
Merci de visiter section 1.3.1.5 Partenariats.
MySQL sur des documents imprimés ou des présentations
MySQL AB apprécie les références à la base MySQL. Il faut
toutefois garder à l'esprit que MySQL est une marque commerciale,
propriété de MySQL AB. A cause de cela, il faut ajouter au logo
le symbole de marque de commerce (TM) lors de la première ou de la
plus visible utilisation du mot MySQL dans le texte et, là où
approprié, établir clairement que MySQL est une marque commerciale
de MySQL AB. Reportez-vous à notre politique de marque commerciale
à http://www.mysql.com/company/trademark.html pour plus de détails.
MySQL dans un nom de société ou de produit
L'utilisation du mot MySQL dans le nom d'une compagnie, d'un produit
ou d'un nom de domaine Internet est interdite sans une permission écrite de
MySQL AB.
Promise depuis longtemps par MySQL AB et attendue avec
impatience par nos utilisateur, le serveur MySQL 4.0 est
disponible en version de production.
MySQL 4.0 est disponible au téléchargement depuis http://www.mysql.com/ et nos mirroirs. MySQL 4.0 a été testée par un grand nombre d'utilisateurs et il est en production sur de très grands sites.
Les fonctionnalités principales de MySQL serveur 4.0 sont destinées à nos utilisateurs professionnels et communautaire : elles améliorent le capacités de MySQL pour gérer les missions critiques et les systèmes fortement chargés. D'autres fonctionnalités sont destinées aux utilisateurs de solutions intégrées.
MySQL version 4.0.12 a été déclarée stable pour utilisation en production, en mars 2003. Cela signifie que désormais, seules les corrections de bugs pour la série 4.0 seront faites. Les corrections de bugs critiques pour les séries 3.23 seront aussi proposées. See section 2.5.3 Passer de la version 3.23 à la version 4.0.
Les nouvelles fonctionnalités sont ajoutées en MySQL 4.1, qui est désormais disponibles sur notre serveur de versions BitKeeper. See section 1.6 MySQL 4.1 In A Nutshell.
INSERT de masse, la recherche sur les
index compressés, la création d'index FULLTEXT ainsi que les comptes
COUNT(DISTINCT).
InnoDB en standard
InnoDB est désormais livré en standard avec le
serveur MySQL, apportant le support complet des transactions ACID,
les clés étrangères avec modifications et effacement en cascade,
ainsi que le verrouillage de ligne.
See section 7.5 Tables InnoDB.
FULLTEXT de MySQL Server 4.0
permettent l'utilisation d'index FULLTEXT sur de grandes quantités de
texte, avec des logiques binaires ou en langage naturel. Les utilisateurs peuvent
paramétrer la taille minimum des mots, et définir leur propre liste de mots
interdits, dans n'importe quel langue. Cela ouvre la possibilité de nombreuses
applications avec MySQL Server.
See section 6.8 Recherche en Texte-entier (Full-text) dans MySQL.
TRUNCATE TABLE (comme sous Oracle) et
IDENTITY comme synonyme pour les clés automatiquement incrémentées
(comme sous Sybase).
UNION, une fonctionnalité SQL attendue
avec impatience.
latin1_de, qui corrige les problèmes
de tri des valeurs allemandes, en plaçant les umlauts allemands dans
le même ordre que dans l'annuaire d'Allemagne.
mysqld
peuvent être modifiées sans redémarrer le serveur. See section 5.5.6 Syntaxe de SET.
DELETE et UPDATE peuvent désormais fonctionner
sur plusieurs tables.
liens symboliques à MyISAM au niveau
des tables (et non plus au niveau des bases, comme auparavant), et en
autorisant les liens symboliques sur Windows, nous espérons que nous
avons pris au sérieux vos demandes d'amélioration.
SQL_CALC_FOUND_ROWS et FOUND_ROWS() rendent
possible le comptages de lignes sans utiliser la clause LIMIT.
La section sur les nouveautés du manuel rassemble toutes les nouveautés. See section C.3 Changements dans la publication 4.0.x (Beta).
libmysqld rend le serveur MySQL disponible pour toute une gamme
d'applications très vaste. En utilisant la librairie du serveur
MySQL intégré, vous pouvez utiliser MySQL dans différentes applications
et appareillages, où l'utilisateur final n'aura même pas idée
de sa présence. Le serveur MySQL intégré est idéal pour équiper les
bornes internet, les kiosques publics, les packages matériel/
logiciels clé en main, les serveurs MySQL haute performances,
et les bases de données autonomes sur CDrom.
De nombreux utilisateurs de libmysqld profiteront de la
double licence. Pour ceux qui ne souhaitent pas être liés par
la licence GPL, la librairie est aussi disponible avec une
licence commerciale. La librairie MySQL intégrée utilise la même
interface que la librairie cliente classique, ce qui la rend
pratique à utiliser. See section 8.4.15 libmysqld, la librairie du serveur embarqué MySQL.
MySQL Server 4.0 a posé les fondations pour de nouvelles fonctionnalités telles que les sous-requêtes imbriquées et l'Unicode qui sont dors et déjà implémentée en version 4.1, ainsi que les procédures stockées SQL-99, qui seront disponibles pour la version 5.0. Ils représentent les fonctionnalités les plus demandées par de nombreux clients.
Avec ces améliorations, les critiques du serveur de base de données MySQL devront être plus imaginatifs que jamais pour identifier des manques dans le serveur MySQL. Déjà connu depuis longtemps pour sa stabilité, sa rapidité et sa facilité d'emploi, le serveur MySQL va désormais satisfaire la liste de tous les voeux des clients les plus exigents.
Les fonctionnalités ci-dessous sont implémentées en MySQL 4.1. Quelques autres fonctionnalités sont prévues pour MySQL 4.1, mais très peu. See section 1.9.1 New Features Planned For 4.1.
Les plus récentes fonctionnalités en cours de réalisation, comme par exemple les procédures stockées, seront disponibles en MySQL 5.0. See section 1.9.2 New Features Planned For 5.0.
SELECT * FROM t1 WHERE t1.a=(SELECT t2.b FROM t2); SELECT * FROM t1 WHERE (1,2,3) IN (SELECT a,b,c FROM t2);
FROM d'une commande SELECT :
SELECT t1.a FROM t1, (SELECT * FROM t2) t3 WHERE t1.a=t3.a;
BTREE pour les tables HEAP, ce qui
améliore significativement le temp de réponse pour les recherches
non exactes.
CREATE TABLE table LIKE table vous permet de créer une nouvelle
table avec la même structure que la table d'origine, dans la même commande.
SHOW WARNINGS affiche les erreurs de la dernière commande.
See section 4.5.6.9 SHOW WARNINGS | ERRORS.
HELP command coté serveur, qui peut être utilisée en ligne de commande
du client mysql et d'autres clients, pour obtenir de l'aide
sur les commandes SQL. Avec ces informations sur le serveur, elles
seront parfaitement adaptées à la version et configuration du serveur.
INSERT ... ON DUPLICATE KEY UPDATE .... Elle vous permet
de modifier une ligne avec UPDATE, si l'insertion
INSERT avait généré un double dans la colonne PRIMARY ou
UNIQUE.
See section 6.4.3 Syntaxe de INSERT.
La section sur les nouveautés du manuel rassemble toutes les nouveautés. See section C.2 Changes in release 4.1.x (Alpha).
De nouvelles fonctionnalités sont ajoutées à MySQL 4.1, qui est déjà disponible dans notre système BitKeeper. See section 2.3.4 Installer à partir de l'arbre source de développement.
Le jeu de fonctionnalités destiné à la version 4.1 est globalement définitif. Les nouveautés iront essentiellement à la nouvelle version de développement 5.0. MySQL 4.1 va suivre son développement normal avec une phase Alpha (durant laquelle de nouvelles fonctionnalités peuvent être ajoutées ou modifiées), puis Beta (où les fonctionnalités sont fixées, et seules des corrections sont faîtes), puis Gamma (qui indique qu'une version de production verra le jour dans quelques semaines), avant que la version 4.1 ne deviennent la nouvelle version officielle.
Il est recommandé aux utilisateurs de ne pas passer leurs systèmes en production sous le serveur MySQL 4.x, jusqu'à ce qu'elle soit publiée en phase béta (telle que la 4.0.3 beta). Toutefois, même la version initiale a passé avec succès notre batterie de tests, sans aucune erreur sur aucune plate-forme que nous avons utilisé. Etant donné le grand nombre de fonctionalités supplémentaires, nous recommandons le serveur MySQL, même en version alpha, pour les phases de développement. L'agenda de publication du serveur MySQL 4.x est tel qu'il atteindra un état stable avant les applications qui sont aujourd'hui en phase de développement.
Les nouveaux développements de MySQL sont désormais concentrés sur la version 5.0. Les procédures stockées et d'autres fonctionnalités seront en vedette. See section 1.9.2 New Features Planned For 5.0.
Cette section vous présente les listes de diffusions MySQL, et donne des conseils quand à leur utilisation. En vous inscrivant à une des listes de diffusion, vous recevrez les messages que les autres auront envoyé, et vous pourrez envoyer vos propres questions et réponses.
Pour vous inscrire à la liste de diffusion principale de MySQL, envoyez un courrier électronique à mysql-subscribe@lists.mysql.com.
Pour vous désinscrire à la liste de diffusion principale de MySQL, envoyez un courrier électronique à mysql-unsubscribe@lists.mysql.com.
Seule l'adresse d'où vous envoyez votre message est importante. La ligne de sujet et le corps sont ignorés.
Si votre adresse de réponse n'est pas valide, vous pouvez spécifier
votre adresse explicitement, en ajoutant un tiret après le mot
subscribe ou unsubscribe, suivi de votre adresse dans laquelle vous aurez
remplacé le caractère `@' par `='. Par exemple, pour inscrire
l'adresse your_name@host.domain, envoyez un message à
mysql-subscribe-your_name=host.domain@lists.mysql.com.
Les mails envoyés à mysql-subscribe@lists.mysql.com et mysql-unsubscribe@lists.mysql.com sont géré automatiquement par le robot ezmlm. Des informations sur ezmlm sont disponibles à http://www.ezmlm.org/.
Pour poster un message sur la liste elle-même, envoyez votre message à
mysql@lists.mysql.com. Toutefois, n'envoyez pas de mail
d'inscription ou de désinscription à mysql@lists.mysql.com car
tous les mails envoyés à cette adresse sont distribués automatiquement
à des milliers d'utilisateurs.
Votre site local peut avoir beaucoup d'inscrits à la liste mysql@lists.mysql.com.
Si c'est le cas, vous pouvez avoir une liste de diffusion locale, de façon
à ce que les messages envoyés par lists.mysql.com à votre site
local soit propagés par votre serveur local. Dans ce cas, contactez votre
administrateur local pour être ajouté ou retiré de la liste.
Si vous voulez que le trafic de cette liste soit envoyé à une autre
boîte aux lettres de votre client mail, installez un filtre basé sur les
entêtes du message. Vous pouvez utiliser notamment les entêtes List-ID: et
Delivered-To: pour identifier les messages de la liste.
Les listes de diffusion MySQL suivantes existent :
announce-subscribe@lists.mysql.com announce
mysql-subscribe@lists.mysql.com mysql
mysql-digest-subscribe@lists.mysql.com mysql-digest
mysql en format journalier. Cela signifie que vous
recevrez tous les messages de la journée en un seul gros email.
bugs-subscribe@lists.mysql.com bugs
mysqlbug
(si vous utilisez Windows, il faut aussi inclure la description du système
d'exploitation et la version de MySQL MySQL).
De préférence, vous devriez tester le problème avec la dernière version stable
ou de développement du serveur MySQL avant de l'envoyer. Tout le monde doit être
capable de reproduire le bogue simplement avec la ligne de commande
mysql test < script avec le cas de test inclus. Tous les bogues doivent
être posté sur la liste, et seront corrigés ou documentés dans la prochaine
version de MySQL!. Si les modifications sont trop petites, nous publierons
aussi un patch qui résout le problème.
bugs-digest-subscribe@lists.mysql.com bugs-digest
bugs en format journalier.
internals-subscribe@lists.mysql.com internals
internals-digest-subscribe@lists.mysql.com internals-digest
internals en format journalier.
java-subscribe@lists.mysql.com java
java-digest-subscribe@lists.mysql.com java-digest
java en format journalier.
win32-subscribe@lists.mysql.com win32
win32-digest-subscribe@lists.mysql.com win32-digest
win32 en format journalier.
myodbc-subscribe@lists.mysql.com myodbc
myodbc-digest-subscribe@lists.mysql.com myodbc-digest
myodbc en format journalier.
mysqlcc-subscribe@lists.mysql.com mysqlcc
MySQL Control Center.
mysqlcc-digest-subscribe@lists.mysql.com mysqlcc-digest
mysqlcc en format journalier.
plusplus-subscribe@lists.mysql.com plusplus
plusplus-digest-subscribe@lists.mysql.com plusplus-digest
plusplus en format journalier.
msql-mysql-modules-subscribe@lists.mysql.com msql-mysql-modules
msql-mysql-modules-digest-subscribe@lists.mysql.com msql-mysql-modules-digest
msql-mysql-modules en format journalier.
Vous pouvez vous inscrire ou vous désinscrire de toutes les listes en
même temps de la même façon que nous l'avons décrit au début. Dans votre
message d'inscription, utilisez simplement le nom de liste approprié.
Par exemple, pour vous inscrire à la liste myodbc, envoyez un
message à myodbc-subscribe@lists.mysql.com ou
myodbc-unsubscribe@lists.mysql.com.
Si vous ne pouvez pas obtenir d'informations sur la liste de diffusion, une de vos options est de prendre un contrat de support auprès de MySQL AB, qui vous donnera un contact direct avec les développeurs MySQL. See section 1.4.1 Support proposé par MySQL AB.
Le tableau suivant présente diverses autres listes de diffusions consacrée à MySQL, dans d'autres langues que l'anglais. Notez que ces ressources ne sont pas gérées par MySQL AB, ce qui fait que nous ne pouvons pas garantir leur qualité.
mysql-france-subscribe@yahoogroups.com Une liste de diffusion française
list@tinc.net Une liste de diffusion coréenne
subscribe mysql your@e-mail.address.
mysql-de-request@lists.4t2.com Une liste de diffusion allemande
subscribe mysql-de your@e-mail.address.
Vous aurez plus d'informations sur cette liste à http://www.4t2.com/mysql/.
mysql-br-request@listas.linkway.com.br Une liste de diffusion portugaise
subscribe mysql-br your@e-mail.address.
mysql-alta@elistas.net Une liste de diffusion espagnole
subscribe mysql your@e-mail.address.
Avant de soumettre un rapport de bogue ou une question, commencez par ces étapes simples :
Si vous n'arrivez pas à trouver une réponse à votre question dans le manuel ou dans les archives, vérifiez auprès de votre expert MySQL local. Si vous ne trouvez toujours pas la réponse, vous pouvez lire la section suivante et envoyer un mail bien préparé à mysql@lists.mysql.com.
Ecrire un bon rapport de bogue requiert de la patience, et le faire dès le début épargnera votre temps et le notre. Un bon rapport de bogue qui contient un cas de test complet améliorera vos chances de voir le bogue corrigé à la prochaine version. Cette section vous aidera à écrire correctement un rapport de bogue, de manière à ce que vous ne gaspillez pas votre temps à faire des textes qui ne nous aideront que peu ou pas.
Nous vous recommandons d'utiliser le script mysqlbug pour générer un
rapport de bogue (ou rapporter un problème), dans la mesure du possible. mysqlbug
est situé dans le dossier `scripts' de la distribution, ou, pour les distributions
binaire, dans le dossier `bin' du dossier d'installation de MySQL.
Si vous êtes dans l'incapacité d'utiliser mysqlbug, vous devez tout de même
inclure toutes les informations nécessaires listées dans cette section.
Le script mysqlbug vous aide à générer un rapport en déterminant automatiquement
les informations suivantes, mais si quelque chose d'important lui échappe, ajoutez
le dans votre message! Lisez cette section avec attention, et assurez vous que toutes
les informations décrites ici sont présentes dans votre message.
Pour rapporter un bogue ou un problème, il faut le soumettre à la liste
mysql@lists.mysql.com. Si vous pouvez rédiger un cas de
test qui démontre clairement le bogue, il faut le poster sur la liste
bugs@lists.mysql.com. Notez que sur cette liste, vous ne devez
poster qu'un rapport complet de bogue regénérable, avec le script
mysqlbug. Si vous travaillez sous Windows, vous devez ajouter
une description de votre système d'exploitation et de votre version
de MySQL. De préférence, il vaut mieux utiliser la dernière version de
MySQL, version stable ou de développement, avant d'envoyer un message.
Tout le monde doit être capable de reproduire le bogue en utilisant simplement
la ligne de commande ``mysql test < script'', avec le cas de bogue
fourni, ou bien d'exécuter un script shell ou Perl qui est inclut dans
le rapport de bogue. Tous les bogues postés sur
la liste bogues seront corrigés ou documentés dans la prochaine version
de MySQL. Si seul de petits changements sont nécessaires, nous publierons aussi
un patch.
Si vous avez découvert un problème de sécurité sensible dans MySQL, il faut envoyer un email à security@mysql.com.
Sachez qu'il est toujours possible de répondre à un message qui contient trop d'informations, alors qu'il est impossible de répondre à um message qui contient trop peu d'informations. Souvent, il est facile d'omettre des faits parce que vous pensez connaître la cause du problème et supposez que ces détails ne sont pas importants. Un bon principe à suivre est : si vous avez un doute à propos de quelque chose, faites nous en part. Il est bien plus rapide et bien moins frustrant d'écrire quelques lignes de plus dans un rapport plutôt que d'être obligé de demander une nouvelle fois et d'attendre une réponse parce que vous avez oublié une partie des informations la première fois.
L'erreur la plus commune est de ne pas indiquer le numéro de la version de MySQL qui est utilisé, ou de ne pas indiquer le système d'exploitation que vous utilisez (y compris le numéro de version de ce système d'exploitation). Ce sont des informations de première importance, et dans 99% d4es cas, le rapport de bogue est inutilisable sans ces informations. Souvent, nous recevons des questions telles que ``Pourquoi est ce que cela ne fonctionne pas pour moi?''. Puis nous nous aperçevons que la fonctionnalités en question n'est même pas programmée dans la version de MySQL utilisée, ou que le bogue décrit est déjà corrigé dans une nouvelle version de MySQL. Parfois aussi, les erreurs sont dépendantes des plate-formes. Dans ce cas, il est presque impossible de les corriger sans savoir quel système d'exploitation et quelle version exacte est utilisée.
Pensez aussi à fournir des informations concernant votre compilateur, si c'est pertinent. Souvent, les développeurs trouvent des bogues dans les compilateurs, et pensent que c'est liés à MySQL. La plupart des compilateurs sont en constant développement, et s'améliorent de version en version. Pour déterminer si votre problèe dépend de votre compilateur, nous avons besoin de savoir quel compilateur est utilisé. Notez que les problèmes de compilations sont des bogues, et doivent être traités avec un rapport de bogues.
Il est particulièrement utile de fournir une bonne description du bogue dans le rapport de bogue. Cela peut être un exemple de ce que vous avez fait qui a conduit au problème, ou une description précise. Les meilleurs rapports sont ceux qui incluent un exemple complet permettant de reproduire le bogue. See section D.1.6 Faire une batterie de tests lorsque vous faites face à un problème de table corrompue.
Si un programme produit un message d'erreur, il est très important d'inclure ce message dans votre rapport. Il est préférable que le message soit le message exact, car il est alors possible de le retrouver en utilisant les archives : même la casse doit être respectée. N'essayez jamais de vous rappeler d'un message d'erreur, mais faites plutôt un copier/coller du message complet dans votre rapport.
Si vous avez un problème avec MyODBC, essayez de générer un fichier de trace MyODBC. See section 8.3.7 Rapporter des problèmes avec MyODBC.
Pensez aussi que de nombreux personnes qui liront votre rapport
utilisent un formatage de 80 colonnes. Lorsque vous générez votre
rapport et vos exemples avec l'outil de ligne de commande, utilisez
une largeur de 80 colonnes. Utilisez l'option
--vertical (ou la fin de commande \G) pour les
affichages qui excèdent une telle largeur (par exemple,
avec la commande EXPLAIN SELECT; voyez l'exemple un peu
plus tard dans cette section.
Voici un pense-bête des informations à fournir dans votre rapport :
mysqladmin version. mysqladmin est
situé dans le dossier `bin' de votre distribution MySQL.
uname -a.
mysqld s'est arrété, il est recommandé d'inclure la requête qui a
mené à cet arrêt de mysqld. Vous pouvez généralement la trouver en
exécutant mysqld en ayant activé les logs. See section D.1.5 Utilisation des fichiers de log pour trouver d'où viennent les erreurs de mysqld.
mysqldump --no-data db_name tbl_name1 tbl_name2 ....
C'est très simple à faire, et c'est un moyen efficace d'obtenir un
descriptif de table, qui nous permettra de recrééer une situation
comparable à la votre.
SELECT, pensez à inclure le résultat de la commande
EXPLAIN SELECT ..., et au moins le nombre de ligne que la
commande SELECT doit produire. Vous devriez aussi inclure
le résultat de la commande SHOW CREATE TABLE table_name
pour chaque table impliquée. Plus vous nous fournirez d'informations,
plus nous aurons de chance de vous aider efficacement. Par exemple,
voici un excellent rapport de bogue (posté avec le script mysqlbug,
et effectivement rédigé en ANGLAIS) :
Exemple réalisé avec mysql en ligne de commande (notez l'utilisation
de la fin de commande \G, pour les résultats qui pourraient dépasser
les 80 colonnes de large) :
mysql> SHOW VARIABLES;
mysql> SHOW COLUMNS FROM ...\G
<output from SHOW COLUMNS>
mysql> EXPLAIN SELECT ...\G
<output from EXPLAIN>
mysql> FLUSH STATUS;
mysql> SELECT ...;
<A short version of the output from SELECT,
including the time taken to run the query>
mysql> SHOW STATUS;
<output from SHOW STATUS>
mysqld, essayez
de fournir un script qui reproduit l'anomalie. Ce script doit inclure
tous les fichiers sources nécessaires. Plus votre script reproduira fidèlement
votre situation, le mieux ce sera. Si vous pouvez réaliser un cas de test
postez le sur la liste bugs@lists.mysql.com pour un traitement
en priorité!
Si vous ne pouvez pas fournir de script, fournissez tout au moins le
résultat de la commande mysqladmin variables extended-status processlist
dans votre mail pour fournir des informations sur les performances
de votre système.
mysqldump et créez un fichier `README' qui décrit votre
problème.
Créez une archive compressée de votre fichier en utilisant
tar et gzip ou zip, et placez le via ftp sur le
site de ftp://support.mysql.com/pub/mysql/secret/. Puis, envoyez
une courte description de votre problème à bugs@lists.mysql.com.
ftp pour les transférer
dans le dossier secret ftp://support.mysql.com/pub/mysql/secret/. Si
les données sont vraiment ultra secrètes et que vous ne souhaitez même
pas nous les montrer, alors utilisez d'autres noms et données pour votre
rapport, mais considérez cela comme un dernier recours.
mysqld,
et celle que vous utilisez avec les programmes comme mysqld et mysql,
et le script configure, qui sont souvent primordiaux et pertinents.
Ce n'est jamais une mauvaise idée que de les inclure. Si vous utilisez des
modules, comme Perl ou PHP, incluez aussi les versions de ces
logiciels.
mysqlaccess, celui de mysqladmin reload et
tous les messages d'erreurs que vous obtenez lors de la connexion. Lorsque
vous testez votre système de droits, il faut commencer par utiliser la
commande mysqladmin reload version et de vous connecter
avec le proramme qui vous pose problème. mysqlaccess est situé
dans le dossier `bin' de votre installation de MySQL.
parse error, vérifiez votre syntaxe
avec attention. Si vous ne pouvez rien y trouvez à redire, il est
très probable que votre version de MySQL ne supporte pas encore
cette fonctionnalité que vous essayez d'utiliser. Si vous utilisez la
version courante de mySQL et que le manuel
http