Bu yazıda MySQL ve MariaDB veritabanı tablolarını kontrol eden, analiz eden, onaran ve optimize eden komut satırı aracı mysqlcheck‘den bahsedeceğim. Kısım kısım kullanımını inceleyelim.
Veritabanındaki Bir Tabloyu Kontrol Etme
blog veritabanındaki yazilar tablosunu kontrol etmek için aşağıdaki komut kullanılır:
$ mysqlcheck -c blog yazilar blog.yazilar OK # Bu da çıktısı
Eğer veritabanınız şifre ile korunuyorsa
-u root -p
kısmını komutunuzun sonuna ekleyin:
$ mysqlcheck -c blog yazilar -u root -p Enter password: blog.yazilar OK
Veritabanındaki Bir Tabloyu Analiz Etme
Aşağıdaki komut ile blog veritabanındaki yazılar tablosunu analiz edebilirsiniz:
$ mysqlcheck -a blog yazilar blog.yazilar OK
Eğer MySQL veya MariDB sunucunuz uzak bir sunucuda çalışıyorsa komutunuzun sonuna
-h
ekleyerek uzak sunucu adresini girin:
$ mysqlcheck -a blog yazilar -h uzaksunucu.com blog.yazilar OK
Bütün Veritabanlarındaki Bütün Tabloları Analiz Etme
$ mysqlcheck -o --all-databases blog.kullanicilar note : Table does not support optimize, doing recreate + analyze instead status : OK mysql.time_zone_transition_type Table is already up to date
Bu komutun çıktısında yazan
Table does not support optimize, doing recreate + analyze instead
bu ifadeden şunu anlamalıyız. Optimize etmeye çalıştığımız tablonun depolama motoru InnoDB imiş. InnoDB tabloyu optimize etmeye çalıştığınızda yeni bir tablo oluşturulur, optimize ettiğiniz tablonun bütün satırları yeni tabloya kopyalanır, eski tablo silinir ve yeni tablonun ismi yeniden eskisi ile aynı olacak şekilde güncellenir ve en sonunda ANALYZE komutu çalıştırılır tabloda.
Table is already up to date
çıktısı ile de tablonun durumunun güncel olduğunu ve işlem yapmaya gerek olmadığını belirtir.
Birden Fazla Veritabanını Onarma
Aşağıdaki komut ile hem blog hemde blog2 tablosunu aynı anda onarabilirsiniz:
$ mysqlcheck -r --databases blog blog2
Eğer bu komutu çalıştırdığınızda
note : The storage engine for the table doesn't support repair
uyarısını görürseniz anlayın ki ilgili tablonun da depolama motoru InnoDB’dir.
Bütün Veritabanlarını Optimize Edip Onarma
Aşağıdaki komut sunucunuzda ki bütün veritabanlarını kontrol edecektir ve bozulmuş olan varsa otomatik olarak onaracaktır. :
$ mysqlcheck --auto-repair -o --all-databases
Umarım işinize yarar, sorularınızı yorum olarak sorabilirsiniz,