Mysqlexport – Veritabanını Php İle Dışarı Aktarmak
İster programcı olun ister web sitesi olan herhangi birisi, herkesin başına gelmiştir; veritabanlarınızı yedeklemek istersiniz ama paylaşımlı hosting kullanırsınız ve hosting firmasından kaynaklı problemler ile veritabanınızı ya da veritabanlarınızı dışarıya aktarıp yedeklemek imkansız hale gelir. Böyle bir sorunuz olmasa bile benim gibi kendi sunucunuzu yönetebilirsiniz ve birçok veritabanınızı elle yedeklemek size zor gelir. Tüm veritabanlarınızı otomatik olarak yedekleyecek bir sisteminiz olsun istersiniz.
Zaten programcı dediğiniz tembel olur, tembel kalabilmek için her şeyi otomatikleştiren veya kolaylaştıran insanlardır. Programı çalıştırdığı esnada kahve makinesinin kahve oluşturmaya başlaması ve tam onun yanına geldiği esnada kahve oluşturmayı bitirmesi için kod yazan sistem yöneticileri gördü bu dünya. İşte ben böyle insanları takdir ederim.
Ben de sunucumdaki veritabanlarını otomatik olarak yedeklemesi için bir php sınıfı oluşturdum. Cronjob oluşturarak bu dertten kurtulacağım. Siz de isterseniz benim gibi otomatik yedekleme için kullanın, isterseniz web üzerinden gireceğiniz bir şifre ile yedekleyen özel sayfa oluşturun.
Oluşturduğum mysqlexport projesine https://github.com/erhankilic/mysqlexport adresinden oluşabilirsiniz.
Aşağıdaki örnek kullanım ile istediğiniz gibi veritabanlarınızı yedekleyebilirsiniz. Yalnız tüm veritabanlarına erişim yetkisi olan bir kullanıcı ile yapmalısınız. Aksi takdirde hangi veritabanına yetkisi varsa sadece onu yedekleyecektir.
Kullanım Basamakları;
- Öncelikle include ile sınıfımızı programımıza dahil ediyoruz.
- Bir değişkene oluşturduğumuz yeni sınıfı atıyoruz. İlk parametrede yedeklenecek yerin yolunu yazıyoruz. Daha sonra sırasıyla veritabanı bağlantı adresini (genelde localhost olur), kullanıcı adını ve kullanıcı şifresini parametreler olarak yazıyoruz.
- Bundan sonra iki seçeneğimiz var. İster setDatabases(array $databases) ile bir array içerisinde yedeklemek istediğimiz veritabanlarını programa tanımlıyoruz ya da getDatabases() fonksiyonu ile veritabanlarının isimlerini çekmesini sağlıyoruz.
- En sonunda da export() fonksiyonu ile yedekleme işlemini bitiriyoruz.
<?php include 'Export.php'; $export = new MysqlExport\Export('backup', 'localhost', 'root', 'dev1'); $export->getDatabases(); $export->export();