Posts

Mysqlexport – Exporting the Database with PHP

Whether you are a programmer or a website owner, it’s up to everyone; you want to back up your databases but you use shared hosting and it becomes impossible to export and back up your databases because of problems from the hosting company. Even if you do not have such a problem, you can manage your own server like me, and it’s hard for you to back up many databases manually. You would like to have a system (PHP script) that automatically backs up all your databases. Anyway, the programmer is lazy, the programmers are people who automate or facilitate everything to stay lazy.

I also created a PHP class to automatically back up the databases on my server. I will get rid of this problem by creating a cronjob. You can either use it for automatic backup like me or you can create a custom page to backup with a password you will enter via the web.

You can find my “mysqlexport” class on github. You can back up your databases as you like with the following sample usage. You should only do this with a user who has access to all databases. Otherwise, it will only back up the database if it has permission.

Usage Steps;

  1. First, we include our class.
  2. We create a new “mysqlexport” class instance. In the first parameter, we write the path to be backed up. We then write the database connection address (usual localhost), the username, and the password as parameters.
  3. After that, we have two choices; we define the databases we want to back up in an array with setDatabases(array $databases), or we get the names of the databases with the getDatabases() function.
  4. Finally, we end the backup with the export() function.
<?php
include 'Export.php';
$export = new MysqlExport\Export('backup', 'localhost', 'root', 'dev1');
$export->getDatabases();
$export->export();

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ı;

  1. Öncelikle include ile sınıfımızı programımıza dahil ediyoruz.
  2. 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.
  3. 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.
  4. 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();

Portfolio Items