Notez qu'avant de démarrer mysqld avec
--log vous devez vérifier toutes vos tables
avec myisamchk. See
Chapitre 5, Administration du serveur.
Si mysqld se termine ou se bloque, vous devez
démarrer mysqld avec --log.
Lorsque mysqld se termine à nouveau, vous
pouvez examiner la fin de votre fichier de log pour trouver les
requêtes qui ont terminé mysqld.
Si vous utilisez --log sans spécifier un nom
de fichier, le log est enregistré dans le dossier des bases de
données en tant que host_name.log. Dans la
plupart des cas, c'est la dernière requête dans le fichier de
log qui a terminé mysqld, mais si possible,
vérifiez le en redémarrant mysqld et
exécutant à nouveau la requête en question à partir du
client en ligne de commande mysql. Si elle
fonctionne, vous devez aussi tester les autres requêtes
complexes qui n'ont pas abouties.
Vous pouvez aussi utiliser la commande
EXPLAIN sur toutes vos requêtes
SELECT qui prennent beaucoup de temps à
s'exécuter pour être sûrs que mysqld
utilise les index convenablement. See Section 7.2.1, « Syntaxe de EXPLAIN (Obtenir des informations sur les
SELECT) ».
Vous pouvez trouver les requêtes qui prennent trop de temps à
s'exécuter en démarrant mysqld avec
--log-slow-queries. See
Section 5.9.5, « Le log des requêtes lentes ».
Si vous trouvez le texte mysqld restarted
dans le log d'erreurs (normalement nommé
hostname.err) vous avez probablement
trouvé une requête qui fait planter mysqld.
Si tel est le cas, vous devez vérifier toutes vos tables avec
myisamchk (see
Chapitre 5, Administration du serveur), et tester les
requêtes dans les fichiers de log MySQL pour voir si elles ne
fonctionnent toujours pas. si vous trouvez une requête de ce
genre, essayez d'abord de mettre à jour votre version de MySQL
en prenant la version la plus récente. Si cela ne vous aide pas
et que vous ne pouvez trouver d'aide dans les archives des mails
de mysql, vous devez reporter ce bogue à sur
les listes de diffusion. Des liens vers les archives de mails
sont disponibles en ligne à l'adresse suivante :
http://lists.mysql.com/.
Si vous avez démarré mysqld avec
myisam-recover, MySQL vérifiera et essayera
automatiquement de réparer les tables MyISAM
si elles sont marquées comme "not closed
properly" ou "crashed". Si cela
arrive, MySQL ajoutera une entrée dans le fichier
hostname.err 'Warning: Checking
table ...' qui sera suivie de Warning:
Repairing table si la table devait être réparée. si
vous obtenez beaucoup de ces erreurs, sans que
mysqld n'ait planté juste avant, alors
quelque chose ne va pas, et une enquête plus approfondie est
nécessaire. See Section 4.3.1, « Options de ligne de commande de mysqld ».
Ce n'est bien sûr pas de bon augure si
mysqld a crashé, mais dans ce cas, il ne
faut pas s'attarder sur les messages Checking
table... mais plutôt essayer de savoir pourquoi
mysqld a crashé.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
