Ich habe ein einfaches Nagios- Plugin geschrieben, das mysqlcheck aufruft (das nach beschädigten Tabellen sucht ) und bei Beschädigung eine Warnung ausgibt .
Jedoch ist keine meiner Tabellen jetzt beschädigt. Ich bin mir also nicht 100% sicher, ob mein Plugin einwandfrei funktioniert. Ich habe einen Entwickler-Server, der nicht missionskritisch ist. Wie kann ich eine (oder mehrere) der Tabellen erzwingen, dass sie beschädigt sind, damit ich meinen Nagios-Alarm testen kann?
Für die Aufzeichnung ist der Server Ubuntu Dapper und der MySQL ist Version 5.0
Antworten:
Im Allgemeinen können Sie die Datenbanken nicht sichern, indem Sie sie aus / var / lib / mysql kopieren und dann zurückkopieren, da sie beschädigt werden. Sie müssen stattdessen mysqldump verwenden.
Also, wenn Sie in einen der Ordner für die Datenbank in / var / lib / mysql gehen, dh / var / lib / mysql / myDB / und mit einigen der Dateien herumspielen, die das tun sollten :-)
Daher würde ich empfehlen, eine der Dateien zu kopieren, ein wenig mit einem Hex-Editor zu bearbeiten und sie zurück zu kopieren.
quelle
quelle
Sie können ein Fuzzing-Tool wie zzuf verwenden, um eine bereits vorhandene Datenbankdatei zu fuzzeln , z
quelle
Das sollte es tun:
quelle
Ich würde vorschlagen, dass ein realistischerer Weg, Fehler zu simulieren, darin besteht, den Teppich unter den Füßen von MySQL herauszuziehen, während ein intensives Update durchgeführt wird. Die Ausgabe von SIGKILL an den
mysqld
Prozess sollte ausreichen. Wenn Sie MySQL neu starten, werden die betreffenden Tabellen wahrscheinlich als abgestürzt markiert.Alternativ würde ich vorschlagen, die Vorschläge anderer Personen zu übernehmen, jedoch nicht in der
.MYI
Datendatei, sondern in der Indec-Datei.quelle
Beispiel:
quelle
Vielleicht eine Befehlsausführung, die etwa Folgendes bewirkt:
quelle