Jeszcze jeden blog o programowaniu

Radosne twórczości leniwego programisty

Eksport wszystkich baz z MySQL do plików SQL

5 Komentarzy

Eksport wszystkich baz danych z MySQL.

<?php
header('Content-type: text/html; charset=utf-8');
class Config {
   public static $host = '127.0.0.1';
   public static $username = 'root';
   public static $password = '';
   public static $port = 3306;
}

if (!file_exists('dbdumps') || !is_dir('dbdumps'))
   mkdir('dbdumps', 0700);

$dsn = 'mysql:host=' . Config::$host . ';port=' . Config::$port;
$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');
$dbh = new PDO($dsn, Config::$username, Config::$password, $options);

$result = $dbh->query('SHOW DATABASES;');
if ($result !== false)
   foreach ($result->fetchAll() as $row) {
      $cmd = 'mysqldump -u ' . Config::$username . ' -p' . Config::$password
         . ' ' . $row['Database'] . ' > dbdumps/' . $row['Database'] . '.sql';
      system($cmd);
      $fileSize = filesize('dbdumps/' . $row['Database'] . '.sql');
      echo 'File ' . $row['Database'] . '.sql saved [' . $fileSize . ' bytes] .<br />';
   }
Reklamy

Written by filipgorczynski

2012.10.12 @ 19:09:15

Komentarzy 5

Subscribe to comments with RSS.

  1. zadziała na każdym hostingu (dedyk, vps, shared) bez safe mode?
    Do tego po co tworzyć klasę, jeśli jedynym jej celem jest trzymanie statycznych wartości? Nie lepiej po prostu tablica skoro reszta to zwykły strukturalny PHP? :>

    barat

    2012.11.06 at 10:55:50

    • Nie testowałem na wszystkich hostingach więc nie gwarantuję, że wszędzie zadziała. Jeśli chcesz możesz zapisać na tablicy, mi się podobało w ten sposób 🙂

      filipgorczynski

      2012.11.06 at 12:25:06

      • To mogłeś z całości zrobić klasę gdzie do konstruktora przekazujesz config DB (ze ścieżką do mysqldump) i metoda backup gdzie przekazujesz ścieżką gdzie mają być zapisane 🙂
        Do tego metoda restore przyjmująca opcjonalnie nazwę DB, którą chcesz odtworzyć z backupa 😉
        Ogólnie muszę sobie coś takiego podpiąć pod crona, ale nigdy nie mam czasu 😛 Dziś znowu ręcznie coś przywracałem, bo się „przypadkiem” … „komuś” usunęło całe konto klienta …

        barat

        2012.11.06 at 12:33:46

      • Mogłem, ale możliwości zmian i poprawiania są miliony – w zależności kto co potrzebuje.

        filipgorczynski

        2012.11.06 at 12:37:27

      • w sumie i racja 😉

        barat

        2012.11.06 at 12:41:30


Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s

%d blogerów lubi to: