J'ai écrit un simple plugin Nagios qui appelle mysqlcheck (qui vérifie les tables corrompues) et donnera un avertissement si certains sont corrompus.
Cependant, aucune de mes tables n'est corrompue maintenant. Je ne suis donc pas sûr à 100% que mon plugin fonctionne bien. J'ai un serveur de développement qui n'est pas misson critique. Comment puis-je forcer une (ou n'importe laquelle) des tables à être corrompue afin de pouvoir tester mon alerte nagios?
Pour mémoire, le serveur est Ubuntu Dapper et le mysql est la version 5.0
Réponses:
Généralement, vous ne pouvez pas sauvegarder les bases de données en les copiant à partir de / var / lib / mysql puis en les copiant à nouveau car elles sont corrompues, vous devez utiliser mysqldump à la place.
Donc, si vous allez dans l'un des dossiers de la base de données dans / var / lib / mysql, c'est-à-dire / var / lib / mysql / myDB / et que vous jouez avec certains des fichiers qui devraient le faire :-)
Je recommanderais donc de copier l'un des fichiers, de le modifier un peu avec un éditeur hexadécimal et de le recopier.
la source
la source
Vous pouvez utiliser un outil de fuzzing comme zzuf pour fuzzer un fichier de base de données préexistant, par exemple
la source
Cela devrait le faire:
la source
Je suggérerais qu'une façon plus réaliste de simuler la faute serait de retirer le tapis sous les pieds de MySQL pendant qu'il effectue une mise à jour intensive. L'émission de SIGKILL au
mysqld
processus devrait être suffisante. Il y a de fortes chances que lorsque vous redémarrez MySQL, les tables en question seront marquées comme plantées.Sinon, je suggérerais d'appliquer les suggestions d'autres personnes mais au
.MYI
fichier indec plutôt qu'au fichier de données.la source
exemple:
la source
peut-être une exécution de commande qui fait quelque chose comme ceci:
la source