Saya telah menulis plugin Nagios sederhana yang memanggil mysqlcheck (yang memeriksa tabel yang rusak) dan akan memberikan peringatan jika ada yang rusak.
Namun tidak ada meja saya yang rusak sekarang. Jadi saya tidak 100% yakin bahwa plugin saya berfungsi dengan baik. Saya memiliki server dev yang tidak kritis misson. Bagaimana saya bisa memaksa satu (atau yang lain) dari tabel di sana menjadi rusak sehingga saya bisa menguji nagios saya?
Sebagai catatan server adalah Ubuntu Dapper dan mysql adalah versi 5.0
Jawaban:
Secara umum Anda tidak dapat membuat cadangan database dengan menyalinnya dari / var / lib / mysql dan kemudian menyalinnya kembali karena mereka rusak, Anda harus menggunakan mysqldump sebagai gantinya.
Jadi jika Anda masuk ke salah satu folder untuk basis data di / var / lib / mysql, yaitu / var / lib / mysql / myDB / dan mengacaukan beberapa file yang harus melakukannya :-)
Jadi saya akan merekomendasikan menyalin salah satu file, mengedit sedikit dengan hex editor, dan menyalinnya kembali.
sumber
sumber
Anda bisa menggunakan alat fuzzing seperti zzuf untuk fuzz file database yang sudah ada, misalnya
sumber
Ini harus dilakukan:
sumber
Saya menyarankan bahwa cara yang lebih realistis untuk mensimulasikan kesalahan adalah dengan menarik karpet dari bawah kaki MySQL ketika sedang melakukan pembaruan intensif. Penerbitan SIGKILL ke
mysqld
proses harus memadai. Kemungkinannya adalah ketika Anda me-restart MySQL, tabel yang bermasalah akan ditandai sebagai macet.Atau saya sarankan menerapkan saran orang lain tetapi untuk
.MYI
file indec daripada file data.sumber
contoh:
sumber
mungkin eksekusi perintah yang melakukan sesuatu seperti berikut:
sumber