| Précédent | Table des matière | Suivant |
![]() | ![]() |
Ecrire un rapport de bug nécessite de la patience, mais ce premier geste va économiser votre temps, et le notre. Cette section vous aide à écrire votre rapport de bug correctement, de manière à ce que vous ne perdiez pas votre temps à écrire des messages qui ne nous servirons à rien.
Nous vous encourageons à utiliser le script mysqlbug pour générer un rapport de bug (ou un rapport sur n'importe quel problème). mysqlbug est situés dans le dossier de la distribution source, ou, dans la distribution binaire, dans le dossier `bin' de votre dossier d'installation MySQL.Si vous ne pouvez pas utiliser mysqlbug, il est préférable d'inclure toutes les informations listées ci dessous.
Le script mysqlbug vous aide à générer un rapport de bug en déterminant les informations suivantes automatiquement :
mais si vous pensez que quelque chose d'important manque, ajoutez le au message.
Relisez attentivement cette section, et assurez vous que toutes les informations décrites ci dessous
sont incluses dans votre rapport.
Gardez à l'esprit qu'il est toujours possible de répondre à un message qui contient trop d'information, alors que ce n'est pas possible avec un message qui en contient pas assez. Souvent, les rapports omettent des informations car les utilisateurs pensent avoir compris les causes du problème et que certains détails sont insignifiants. Le bon principe est le suivant : Si vous doutez de quelque chose, dites le. Il est milles fois plus rapide d'ajouter quelques lignes dans votre rapport, plutôt que d'être forcé de le renvoyé encore une fois, pour complément d'information.
L'erreur la plus répandue est que les utilisateurs n'indique pas le numéro de version de la distribution MySQL qu'ils utilisent, ou la plate forme sur laquelle ils opèrent (y compris la version de cette plate forme). C'est une information primordiale, et 99% des cas sont inexploitables sans cette information. Souvent, nous avons des questions du genre : ``Pourquoi est ce que ça plante chez moi?'' et nous nous aperçevons que cette fonctionnalité n'est pas disponible sur la version de MySQL utilisée, ou bien que le bug a été corrigé dans les versions plus récentes. Parfois, l'erreur dépend de l'OS. Dans ces cas, il est presque impossible de corriger l'erreur sans connaitre le nom de l'OS, et le numéro de version de la plate forme.
N'oubliez pas d'inclure des inforamtions sur les compilateurs, si cela a un rapport avec votre problème. Souvent, on trouve des erreurs dans les compilateurs, et les utilisateurs pensent que c'est lié à MySQL. La plus part des compilateurs sont en développement constants, et s'améliorent de version en version. Pour savoir si votre problème dépend du compilateur, nous avons besoin de savoir quel compilateur est utilisé. Notez que chaque problème lié à la compilation doit être considéré comme un bug, et rapporté de manière adéquate.
Une bonne description du problème est toujours utile dans un rapport de bug. C'est à dire, toutes les manipulations que vous avez faites, qui ont conduit au bug, et la description du bug lui même. Les meilleurs rapports inclus aussi un exemple complet pour reproduire le bug.
Si un programme produit un message d'erreur, il est très important d'inclure le message dans votre rapport! Si vous recherchez dans les archives, il est préférable d'utiliser le message d'erreur exact (même la casse est importante). N'essayez pas de vous souvenir du message : faites en un copier/coller du message entier!
Pensez à inclure les informations suivantes dans votre rapport:
mysqladmin version. mysqladmin est situé
dans le dossier `bin' de votre dossier d'installation MySQL.
uname -a.
mysqldump --no-data nom_base_de_donnees nom_table1 nom_table2 ...
C'est très simple à faire, et c'est une méthode puissante pour rassembler toutes les informations d'une table qui nous permettra de recréer une situation identique à la votre.
SELECT
vous devriez toujours include le résultat d'une commande EXPLAIN SELECT ...,
et au moins le nombre de lignes que votre commande SELECT doit produire.
Plus vous pourrez transmettre d'informations, sur votre situation,
plus nous pourrons vous aider. Par exemple, voici un très bon rapport de bug (
posté avec le script mysqlbug, bien entendu) :
Exemple lancé depuis la ligne de commande mysql:
mysql> SHOW VARIABLES;
mysql> EXPLAIN SELECT ...
<output-from-EXPLAIN>
mysql> FLUSH STATUS;
mysql> SELECT ...
<Une courte description du résultat de SELECT,
en incluant le temps de travail de la requête>
mysql> SHOW STATUS;
<output from SHOW STATUS>
mysqladmin variables extended-status processlist dans votre mail, pour nous
fournir des informations sur votre système.
ftp pour le transférer : ftp://www.mysql.com/pub/mysql/secret/.
Si les données sont vraiment très confidentielles, et que vous ne voulez pas nous
les montrer, utilisez d'autres valeurs, mais considérez ce choix en dernier recours!
mysqld, et celle que
vous utilisez pour les clients MySQL. Les options de programmes tels que
mysqld et mysql, et le script configure sont souvent la clé
de mystères. Ce n'est jamais une mauvaise idée de nous les transmettre, de toutes manières.
Si vous utilisez des modules, tels que Perl ou PHP, n'oubliez pas de donner leur numéro de version.
mysqldump et de créer un fichier `README'
qui décrit votre problème.
Créez une archive compressée de vos fichiers avec
tar et gzip ou zip, et transférez en ftp
dans le dossier ftp://www.mysql.com/pub/mysql/secret/.
Puis, envoyez une courte description de votre problème sur la liste de diffusion.
mysqlaccess,
celui de mysqladmin reload et tous les messages d'erreur que vous obtenez en
vous connectant. Lorsque vous testez les droits, il est préférable de faire tourner d'abord
mysqlaccess. Après ça, excécutez la commande mysqladmin reload version,
et en dernier ressort, essayez de vous connectez avec le programme qui pose problème.
mysqlaccess est situé dans le dossier `bin' de votre dossier d'installation.
parse error, prenez le temps de bien vérifier votre
syntaxe. Si vous ne pouvez pas trouver d'erreur, il est fort probable que
votre version de MySQL ne supporte par la requête que vous utilisez.
Si vous utilisez la version courant et que le manuel de référence http://www.mysql.com/doc.html ne couvre pas
la syntaxe que vous utilisez, c'est que MySQL ne supporte pas votre requête.
Dans ce cas, votre seul option est d'implémenter vous même l'option
ou d'envoyer un email à mysql-licensing@mysql.com et demandez à ce qu'elle soit implémentée.
Si le manuel couvre votre syntaxe, mais que vous avez une vieille version de MySQL,
vérifiez l'historique de MySQL pour voir quand la syntaxe a été implémentée.
Confère section D Historique des versions de MySQL. Dans ce cas, il vous reste la possibilité de vous mettre à jour
avec une nouvelle version de MySQL.
isamchk.
Confère section 13 Maintenance d'un serveur MySQL.
mysqld ne crashe JAMAIS de table s'il n'a pas été tué
durant une modification. Si vous pouvez trouver la source de la fin du processus mysqld,
il est plus facile pour nous de vous fournir un correctif.
Si vous être un client du support, n'envoyez pas le rapport en double sur l'adresse pour voir si quelqu'un expérimenté peut résoudre votre problème.
Pour savoir comment rapporter à propos de MyODBC, allez à section 16.2 Comment rapporter des bugs avec MyODBC.
Pour des solutions aux problèmes courants, reportez vous à Confère section 18 Problèmes et erreurs fréquents.
Lorsque des informations vous sont envoyées individuellement, et pas à la liste de diffusion, il est de bon ton de rassembler toutes les réponses, et de les envoyer à la liste de diffusion pour que le bénéfices des réponses profite à tous.