Import a export databáze přes SSH na multihostingu

Z SvetHostingu.cz
Přejít na: navigace, hledání

Obsah

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.

Cesta k nahrané záloze databáze pro import

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í.

Provedení importu databáze

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 databáze

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

Nahoru