Vytvořit zálohu databáze je dobré například při aktualizaci jádra WordPressu nebo při přesunu stránky na jiný hosting (v tomto případě dokonce nutné). Záloha databáze je poměrně jednoduchý a krátký proces skládající se z 5 kroků. K tomu, abyste mohli zálohu udělat, potřebujete znát název uživatele, který má přístup do databáze, jeho heslo a webovou adresu phpMyAdmina u vašeho poskytovatele hostingu. Pokud uživatele a heslo nevíte, lze je najít v základním adresáři WordPressu na hostingu, v souboru wp-config.php. Konkrétně pak na řádcích 22 a 25. Adresu phpMyAdmin je možné většinou nalézt na stránkách hostingu nebo v kontrolním panelu. Drtivá většina hostingových společností tuto funkci nabízí. Jedná se o grafické uživatelské rozhraní zvládající kompletní správu vašich databází.
Záloha WordPress databáze pomocí phpMyAdmin
- Za pomoci uživatelského jména a hesla se přihlašte do aplikace phpMyAdmin.
- V levém sloupečku vyberte databázi, kterou chcete zálohovat.
- V horním menu zvolte možnost Export.
- Vyberte způsob exportu (doporučuji rychlý), formát (doporučuji SQL) a klikněte na tlačítko Proveď.
- Prohlížeč by vás měl upozornit na nově stažený soubor, anebo se zeptat kam má stahovaný soubor uložit.
Nutno dodat, že celý proces je možno provést o něco snadněji, za pomoci pluginu WP-DB-Backup.
Některé hostingy dokonce nabízejí tvorbu zálohy databáze pomocí kontrolního panelu. Nicméně i námi popsaný návod u nich bude také fungovat.
Obnovení databáze ze zálohy
Pro vytvoření a naplnění tabulek databáze ze zálohy se nejprve potřebujete zbavit současného obsahu. Pro jistotu si podle postupu výše zálohujte i aktuální stav databáze. Poté je možné importovat zálohu.
Poznámka k upload_max_filesize a max_execution_time
Před provedením importu se ještě ujistěte, že velikost zálohy nepřekračuje limit vašeho hostingu pro upload souborů (upload_max_filesize v php.ini). V případě WordPressu by k překročení dojít nemělo, ale mohlo by se to stát. Potom by bylo nutné rozdělit obsah souboru (v poznámkovém bloku, lépe ale např. v PSPadu) do několika částí, které spadají do limitu. Musíte se i ale dát pozor, abyste nepřerušili text uprostřed příkazu. Příkazy jsou ukončené středníkem (;). Vždy zakončujte výběr pro kopírování před začátkem některého z příkazů “INSERT INTO”. Pokud chcete soubor rozdělit na 2 části, najděte “INSERT INTO” přibližně uprostřed obsahu a zkopírujte první polovinu celého souboru až do dvojtečky (včetně dvojtečky) před “INSERT INTO” a vložte do nového souboru, který uložte s příponou “.sql”.
Druhý problém, který připadá v úvahu v případě velké databáze je maximální vykonávací čas skriptu php (max_execution_time v php.ini). Obvykle je tato hodnota nastavena na 30 sekund, záleží však na hostingu. Pokud máte možnost si tuto hodnotu sami nastavit (např. v případě VPS), pak není problém ji navýšit pro potřebu importu dat. I tento problém je možné vyřešit rozdělením hlavního souboru na menší části.
Přejdeme k samotnému postupu nahrazení obsahu včetně mazání původního:
- Nejprve vymažeme původní data
- Pokud máte na výběr více databází, vyberte tu správnou, kterou chcete nahradit zálohou.
- Pod seznamem tabulek vyberte Zaškrtnout vše (viz obr. 1)
- Z rozbalovacího menu Zaškrtuné: zvolte odstranit a potvrďte provedení (viz obr. 1)
- Nyní je vše připraveno pro nahrání ze zálohy, v prázdné databázi tedy vyberte kartu Import (viz obr. 2)
- Ponechte nastavení importu podle obrázku 2 a vyberte soubor.
- Nyní už by databáze měla být nahraná. Gratulujeme!
Pokud jste narazili na nějaké problémy, neváhejte nám napsat do diskuze.
Obrázky z administrace phpMyAdmin:
ahoj, stranky jsem si zalohoval pres plugin wp database backup,..je nejaky jednoduchy postup, pro zacatecnika, jak zalohu obnovit? dekuji moc.
Ahoj, ten plugin by to měl taky umět. Dle FAQ pluginu stačí u vybrané zálohy kliknout na tlačítko Restore.
ahoj, pri importovani zalohy sql se mi v phpmyadmin objevi:
SQL-dotaz:
—
— Databáze: `wordpress`
—
— ——————————————————–
—
— Struktura tabulky `wp_commentmeta`
—
CREATE TABLE IF NOT EXISTS `wp_commentmeta` (
`meta_id` BIGINT( 20 ) UNSIGNED NOT NULL ,
`comment_id` BIGINT( 20 ) UNSIGNED NOT NULL DEFAULT ‘0’,
`meta_key` VARCHAR( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL ,
`meta_value` LONGTEXT COLLATE utf8mb4_unicode_ci
) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
MySQL hlásí: Dokumentace
#1046 – No database selected
co s tim? 🙂
Pred importom tabuliek ste nevybral (alebo nevytvoril) databázu, do ktorej sa majú tabuľký s dátami nahrať.