Ačkoliv je MySQL databáze často považována spíše za „malou“ databázi určenou pro menší webové projekty, často se stane, že jednotlivé tabulky nasbírají i GB dat a milióny řádků. Co pak ale s takovou databází když ji chcete přesunout jinam?
S PHPMyAdminem máte nejspíš smůlu, omezuje vás nastavení PHP (memory_limit a max_execution_time). Co ale vyzkoušet dál? Možností máte relativně mnoho, záleží na konfiguraci vašeho hostingu.
- Máte povolený vzdálený přístup k databázi
Pokud máte povolený vzdálený přístup (remote access) k databázi, je vaše situace poměrně jednoduchá, stačí si nainstalovat program SQLyog (na 30 dní zdarma), který vám umožní vytvořit připojení k databázi přímo z desktop aplikace, na kterou se konfigurace PHP na serveru neváže, můžete tedy databázi bez problémů stáhnout na disk. Pokud si chcete práci urychlit a máte povolený vzdálený přístup k databázi jak na zdrojovém hostingu tak na cílovém, můžete přetáhnout tabulky s daty (nebo jen jejich strukturu) rovnou na cílový server.
Program umožňuje přetahovat libovolně velké databaze, dovolí navíc i vybrat přímo které tabulky chcete ze serveru na server kopírovat. U mého vlastního pokusu došlo k selhání při kopírování 12 GB tabulky, ale nejspíš se jednalo o nějaké omezení nastavené na zdrojovém hostingu.
- Máte v PHP povolenou funkci exec()
Pokud váš webhosting má povolenou funkci exec(), můžete spustit dumpování databáze do souboru přímo v OS, přes PHP, skript vypadá například takto:
<?php $return_var = NULL; $output = NULL; $command = "/usr/bin/mysqldump --user=... --password=... --host=... DB_NAME > /path-to-export/file.sql"; exec($command, $output, $return_var); if($return_var) { echo($return_var); // vypíše návratovou hodnotu (číslo chyby nebo 0) } ?>
- Máte SSH přístup
Pokud máte SSH přístup, můžete dump udělat rovnou 🙂 Viz předchozí bod.
- Nemáte ani vzdálený přístup ani SSH
dokonce i pokud jste takto absolutně limitováni webhostingem, stále vám zbývá jedna výborná možnost a to využití nástroje MySQLDumper, který nakopírujete na FTP, přes prohlížeč spustíte, připojíte k databázi a můžete zálohovat a pak celou zálohu přetáhnout ze serveru na server a pomocí stejného nástroje obnovit. Aplikace využívá k zálohování PHP nebo Perl. Nedělá mu problém práce ani s velkými databázemi.
Výčet možností samozřejmě není kompletní, avšak možná může pomoci jako jednoduchý rozcestník při zálohování a přesunu MySQL databáze.
Žádné komentáře