Bu yazımda Mysql veritabanının yedeğini (dump) almayı göstermeye çalışacağım. Sınav dönemi pek bloğumla ilgilenemiyorum ancak sınavlara çalışma zamanı dışında aklımda olan uygulamaları tamamlamaya çalışıyorum. Bunlardan en önem verdiğim uygulama ise Asp.net ile MySql veritabanının yedeğini almaktı. Bunu da az bir uğraş sonucu başardım. Bunu yapmaktaki amacım ise; tamamen kendi yapımım olan bloğumun yönetim panelini de en iyi seviyeye getirmek. Bu bakımdan önemli eksikliklerden olan veritabanı yedek alma olayını sitemin yönetim panelinden yapabileceğim. Böylece her defasında hostumun sağlamış olduğu phpmyadmin uygulamasına bağlanmama gerek kalmayacak. Şimdi bu uygulama yapmak için yapmamız gerekenlere bakalım.
Öncelikle Mysql veritabanının yedeğini almak için Mysql'in içinde yer alan exe dosyalarından
mysqldump.exe dosyasını kullanacağız. Bu dosya Mysql kurulumu ile gelen dosyalar ve Mysql'i kurduğumuz dizinin altında
bin klasörü içinde yer alır. Asp.net ile Mysql'in yedeğini almak için bu exe dosyasının dizin adresini tam olarak bilmemiz gerekiyor. Aksi halde yedek alma olayını gerçekleşritemeyiz. Bu dizin adresini kendi bilgisayarımızda kolayca elde edebiliyoruz. Ancak serverda kullanabilmek için serverda kurulu olan Mysql'in dizinini bilmemiz gerekir. Bu dizini öğrenmek için hostumuzun phpmyadmin desteği varsa phpmyadmin ile öğrenebiliriz. Eğer öğrenemez isek host sahiplerinden destek alıp bu bilgiyi elde edebiliriz.
Diğer bir nokta da yedek aldığımız veritabanı bilgilerini sql uzantılı bir dosyada saklayacağız. Bu dosyayı nereye yerleştireceğimizi de kendimiz belirleyeceğiz.
Son olarak tüm bilgiler doğrultusunda kodumuzu yazmak kaldı. Kodumuzda Asp.net
Process sınıfını kullanacağız.(
System.Diagnostics namespace'ni eklemeliyiz.) Bu sınıf ile istediğimiz exe dosyalarını çalıştırabiliyoruz. Yedek için çalıştırmamız gereken exe dosyasını bu sınıf yardımı ile çalıştıracağız. Aşağıda çalışan ve yedek alma sonucu elde ettiğimiz dosyayı okuyan kodları görebilirsiniz.
Process.Start("c:\\program files\\mysql\\mysql server 5.0\\bin\\mysqldump.exe", "-ukullanici_adi -psifre veritabani_adi -rc:\\yedek.sql");
FileStream st = new FileStream("c:\\yedek.sql", FileMode.Open);
StreamReader sr = new StreamReader(st);
string metin = sr.ReadToEnd();
st.Close();
Response.Write(metin);
Mysql ile yedek alma sorgumuz yukarıda görüldüğü gibidir. Bu sorgulamayı ve özelliklerini daha ayrıntılı biçimde belirtebiliriz. Ancak en temel kullanımlarından biri yukarıda yazmış olduğum biçimdir.
Böylelikle Asp.net uygulamalarımızda Mysql veritabanının yedeğini alabiliriz. Bu çalışmayı kendi hostumda denedim ve sorunsuzca çalışıyor. Sınavlarımın ardından yönetim paneline bu özelliği eklemeyi düşünüyorum. İlgilenenlere faydası olabilir düşüncesiyle de buradan paylaştım.
İyi Çalışmalar!