Import a export databáze přes SSH na multihostingu
SSH přístup přes příkazovou řádku můžete mimo jiné použít také k importu / exportu velkých databází, které lze nahrávat přes webové aplikace typu phpMyAdmin / Adminer jen velmi obtížně nebo vůbec.
Bližší informace k SSH přístupu jsou uvedeny v této kategorii.
Import
Po nahrání zálohy databáze na FTP do prostoru domény si můžete přítomnost souboru ověřit např. příkazem "ls".
Všechny domény, které máte přidány pod multihostingem, jsou umístěny v adresáři "~/www". Následuje doména prvního řádu (koncovka, např. CZ, COM, EU, atd.) a dále samotný název domény druhého řádu. Na obrázku níže je uveden příklad pro cestu k doméně "demo12345.demo". K doméně "svethostingu.cz" by cesta byla "~/www/cz/svethostingu" atd. Zálohu databáze můžete nahrát i přímo přes SSH přístup, např. přes správce WinSCP. Pro nahrávání přes SSH přístup doporučujeme zálohu umisťovat vždy do tzv. pracovního adresáře, který naleznete na cestě "~/work". Přímo domovský adresář má jen omezený prostor a nemusí se do něj velká databáze vlézt.
Jakmile máte zjištěnu cestu k záloze databáze, můžete provést její nahrání standardním mysql příkazem. Obecný zápis je následující:
mysql -u"NAZEV_UZIVATELE" -p"HESLO_UZIVATELE" NAZEV_DB < CESTA_K_DB
Pokud nechcete zadávat heslo textově přímo viditelně do příkazové řádky, vynechejte jej a zadejte pouze parametr "-p", heslo vložíte interaktivně po potvrzení příkazu.
Konkrétní příklad pro databázi "novadb" s uživatelem "novyuzivatel" a heslem "noveheslo". Záloha je umístěna v FTP prostoru domény "demo12345.demo.
mysql -u"novyuzivatel" -p"noveheslo" novadb < ~/www/demo/demo12345/nahratdodb.sql
Zadáním příkazu provedete import databáze. Pokud je příkaz sestaven správně a údaje k databázi souhlasí, proběhne příkaz bez chybových hlášení.
Pokud jste si zálohu databáze nahráli přímo přes SSH do pracovního adresáře na cestě "~/work", bude zápis následující:
mysql -u"novyuzivatel" -p"noveheslo" novadb < ~/work/nahratdodb.sql
Import velkých databází může být časově náročný.
Zálohy v archívech - vybalení
Může se stát, že zálohu databáze nemáte jako prostý SQL soubor, ale je uložen v nějakém typu archívu. Typ archívu většinou poznáte dle přípony. Archív je před importem potřeba vybalit. Níže uvádíme nejběžnější typy archívů, s jakými se můžete setkat a jak je vybalit.
Archív: zaloha.zip
Vybalit příkazem: unzip zaloha.zip
Archív: zaloha.rar
Vybalit příkazem: unrar zaloha.rar
Archív: zaloha.gz
Vybalit příkazem: gunzip zaloha.gz
Archív: zaloha.bz2
Vybalit příkazem: bunzip2 zaloha.bz2
Archív: zaloha.xz
Vybalit příkazem: unxz zaloha.xz
Archív: zaloha.tar.gz
Vybalit příkazem: tar xzf zaloha.tar.gz
Archív: zaloha.tar
Vybalit příkazem: tar xf zaloha.tar
Archív: zaloha.tar.bz2
Vybalit příkazem: tar xjf zaloha.tar.bz2
Archív: zaloha.tar.xz
Vybalit příkazem: tar xJf zaloha.tar.xz
Export
SSH přístup můžete využít i k exportu databází - vytváření obrazů (záloh) databáze.
Obecný zápis je uveden níže.
mysqldump -u"NAZEV_UZIVATELE" -p"HESLO_UZIVATELE" -Q --opt --allow-keywords --hex-blob NAZEV_DB> ZALOHA.sql
Pokud nechcete zadávat heslo textově přímo viditelně do příkazové řádky, vynechejte parametr "-p" a heslo zadáte interaktivně po potvrzení příkazu.
Konkrétní příklad pro uživatele "novyuzivatel" s heslem "noveheslo" pro export databáze s názvem "novadb" do pracovního adresáře je uveden v následujícím příkladu.
mysqldump -u"novyuzivatel" -p"noveheslo" -Q --opt --allow-keywords --hex-blob novadb > ~/work/zaloha.sql
Do pracovního adresáře také lze vstoupit před tím, než bude export proveden, poté není třeba zadávat úplnou cestu.
Export velkých databází může být časově náročný.
Export zálohy do archívu - zmenšení velikosti
U velkých databází může být žádoucí zmenšit velikost zálohy použitím některého druhu komprese. Většinou se používá buď gzip nebo bzip2. Komprese gzip je rychlejší, ale produkuje větší archívy. Komprese bzip2 je pomalá, ale dovede vytvořit menší archív, než gzip. Komprimace velkých databází může být časově velmi náročná.
Příklad pro vytvoření gzip a bzip2 zálohy:
mysqldump -u"NAZEV_UZIVATELE" -p"HESLO_UZIVATELE" -Q --opt --allow-keywords --hex-blob NAZEV_DB | gzip > zaloha.sql.gz
mysqldump -u"NAZEV_UZIVATELE" -p"HESLO_UZIVATELE" -Q --opt --allow-keywords --hex-blob NAZEV_DB | bzip2 > zaloha.sql.bz2