Jak v PHP zálohovat databázi?

Zálohování databáze v PHP je velmi snadné, tedy pokud použijte utilitu mysqldump.exe, kterou najdete v každé instalaci MySQL. Žádný jiný způsob zálohování v podstatě nemá smysl. Na inetu jsem viděl různé šílenosti, které ve smyčce procházeli databázi a ručně si dělali SQL příkazy, které pak ukládali do souboru, nicméně u větších databází je toto nepoužitelné. Mysqldump je velmi rychlý i u větších databází. A jak vlastně na to?

V našem případě využijeme tedy mysqldump, který zavoláme pomocí příkazu exec a pro který připravíme soubor SQL-OptionFile.cnf, do kterého uložíme citlivé údaje, jenž by se nikde neměly ukazovat/ukládat. A to je vše. Nezapomeňte si v kódu oid článkem upravit cesty k souboru SQL-OptionFile.cnf a mysqldump. Také si nastavte váš název databáze viz. nazevExportovaneDatabaze.

Možností jak skript upravit je hodně. Můžete si výstupní soubor ukládat na serveru => pak smažete řádky s příkazy header a data si uložíte třeba pomocí příkazu file_put_contents(). Nebo si můžete název výstupního souboru doplňovat o datum a čas vytvoření apod. Samotný mysqldump nabízí mnoho možností jak výstup ovlivnit – více o mysqldump.

export-db.php

header("Content-type: text/plain");
header("Content-Disposition: attachment; filename=export.sql");
header("Pragma: no-cache");
header("Expires: 0");

exec('c:\"Program Files\MySQL\MySQL Server 5.7\bin"\mysqldump --defaults-extra-file=E:\intranet\example\SQL-OptionFile.cnf --add-drop-tablenazevExportovaneDatabaze', $result);

foreach ($result as $hodnota)
{
 echo $hodnota.PHP_EOL;
}

Obsah souboru SQL-OptionFile.cnf.

[client]
user="trebaRootZaleziNaVasemNastaveni"
password="vaseTajneHeslo123"

 

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *