Özellikle yüksek hacimli veritabanlarında meydana gelen tablo bozulmalarını web tabanlı araçlar (örneğin phpMyAdmin) üzerinden onarmaya çalışmak, genellikle zaman aşımı (timeout) hatalarına veya işlemin yarıda kesilmesine yol açar. Bu gibi durumlarda en sağlıklı, hızlı ve güvenli yöntem, sunucunuza SSH ile kök (root) erişimi sağlayarak onarım işlemlerini komut satırı üzerinden gerçekleştirmektir.
Aşağıda detaylandırdığımız MySQL veritabanı onarım ve optimizasyon komutlarını, DoğruHost güvencesiyle barındırdığınız tüm VPS ve fiziksel sunucu paketlerinde sorunsuzca uygulayabilirsiniz.
1. Belirli Bir Veritabanını Onarmak
Sadece hata aldığınız veya bozulan tek bir veritabanını onarmak istiyorsanız mysqlcheck aracını kullanabilirsiniz. Buradaki -r parametresi "repair" (onarım) anlamına gelmektedir.
mysqlcheck -r [veritabani_adi]
(Komutu uygularken [veritabani_adi] kısmına kendi veritabanınızın tam adını köşeli parantezler olmadan yazmalısınız.)
2. MyISAM Tabloları İçin Alternatif Onarım Yöntemi
Eğer üstteki komutla işlem yaparken hata alırsanız veya tablolarınız MyISAM motorunu kullanıyorsa, MySQL'in doğrudan dosya dizinine müdahale eden myisamchk aracını kullanabilirsiniz.
Önemli Uyarı: Bu komut veritabanı dosyalarının birebir kopyası üzerinde işlem yapabileceğinden, sunucu diskinizde onarılacak veritabanının boyutu kadar ekstra boş alan bulunduğundan emin olmalısınız.
myisamchk -r /var/lib/mysql/[veritabani_adi]/*
3. Tüm Veritabanlarını Toplu Olarak Onarmak
Sunucunuzda bulunan bütün veritabanlarını tek tek yazmak yerine, genel bir bakım başlatmak için -A (All - Tümü) parametresini kullanarak toplu onarım gerçekleştirebilirsiniz:
mysqlcheck --repair -A
4. Tüm Veritabanlarını Optimize Etmek
Onarım işlemlerinin dışında, veritabanlarınızdaki boşlukları temizlemek, parçalanmaları gidermek ve sorgu performansını artırmak için toplu optimizasyon komutunu belirli aralıklarla çalıştırmanız tavsiye edilir:
mysqlcheck --optimize -A
5. Özel MySQL Şifresi ile İşlem Yapmak
Eğer sunucunuzda MySQL/MariaDB yapılandırmanız mysqlcheck komutunun doğrudan çalışmasına izin vermiyorsa (şifre sorunu yaşarsanız), komutu MySQL kök (root) kullanıcı bilgilerinizi belirterek çalıştırabilirsiniz:
mysqlcheck -A -h localhost -u root -r -p
Bu komutu girdikten sonra enter tuşuna bastığınızda, sistem sizden MySQL root şifrenizi girmenizi isteyecektir (şifreyi yazarken ekranda karakterler görünmez, yazıp enter'a basmanız yeterlidir).
