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.