:: DEVELOPER ZONE
Si vos tables sont corrompues ou que mysqld échoue toujours avec
quelques commandes de mises à jour, vous pouvez tester si le bogue est
reproductible en effectuant ce qui suit :
Coupez le démon MySQL (avec mysqladmin shutdown).
Créez une copie de vos tables (pour prévoir le cas très improbable ou la réparation tournerait mal).
Vérifiez toutes les tables avec myisamchk -s base/*.MYI. Réparez toute
table corrompue avec myisamchk -r base/table.MYI.
Créez une seconde copie des tables.
Effacez (ou déplacez) tout les vieux fichiers de log du répertoire de données de MySQL si vous avez besoin de plus d'espace.
Démarrez mysqld avec --log-bin. See Section 5.9.4, « Le log binaire ».
Si vous voulez trouver une requête qui fait planter mysqld, vous devez
utiliser --log --log-bin.
Lorsque vous obtenez une table corrompue, stoppez le serveur mysqld.
Restaurez les sauvegardes.
Redémarrez le serveur mysqld sans --log-bin
Re-exécutez les commandes avec mysqlbinlog update-log-file | mysql.
Le log des mises à jour est est sauvegardé dans le dossier des données de MySQL
avec le nom hostname-bin.#.
Si les tables sont à nouveau corrompues ou que vous pouvez faire échouer mysqld
avec la commande précédente, vous avez trouvé un bogue reproductible qui devrait être
facile à corriger ! Envoyez les tables et le log binaire via FTP à
ftp://support.mysql.com/pub/mysql/secret/ et envoyez un mail à
<bugs@lists.mysql.com> ou (si vous êtes client du support) à
<support@mysql.com> à propos du problème et l'équipe MySQL le corrigera le
plus vite possible.
Vous pouvez aussi utiliser le script mysql_find_rows pour n'exécuter que
quelques requêtes de mises à jour si vous voulez mieux cerner le problème.
© 1995-2005 MySQL AB. All rights reserved.
