Import a export databáze přes SSH na multihostingu: Porovnání verzí
(→Export) |
|||
(Není zobrazeno 10 mezilehlých verzí od 2 dalších uživatelů.) | |||
Řádek 2: | Řádek 2: | ||
<span id="begin"></span> | <span id="begin"></span> | ||
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. | 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 [http://wiki.svethostingu.cz/Kategorie:SSH_p%C5%99%C3%ADstup této kategorii]. | |||
= Import = | = Import = | ||
Řádek 10: | Řádek 12: | ||
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í: | 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í: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
mysql | mysql -u"NAZEV_UZIVATELE" -p"HESLO_UZIVATELE" NAZEV_DB < CESTA_K_DB | ||
</syntaxhighlight> | </syntaxhighlight> | ||
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''. | 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''. | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
mysql | mysql -u"novyuzivatel" -p"noveheslo" novadb < ~/www/demo/demo12345/nahratdodb.sql | ||
</syntaxhighlight> | </syntaxhighlight> | ||
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í. | 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í. | ||
Řádek 20: | Řádek 24: | ||
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í: | 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í: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
mysql | mysql -u"novyuzivatel" -p"noveheslo" novadb < ~/work/nahratdodb.sql | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Import velkých databází může být časově náročný. | Import velkých databází může být časově náročný. | ||
Řádek 38: | Řádek 42: | ||
Archív: zaloha.bz2 | Archív: zaloha.bz2 | ||
Vybalit příkazem: bunzip2 zaloha.bz2 | Vybalit příkazem: bunzip2 zaloha.bz2 | ||
Archív: zaloha.xz | |||
Vybalit příkazem: unxz zaloha.xz | |||
Archív: zaloha.tar.gz | Archív: zaloha.tar.gz | ||
Řádek 47: | Řádek 54: | ||
Archív: zaloha.tar.bz2 | Archív: zaloha.tar.bz2 | ||
Vybalit příkazem: tar xjf zaloha.tar.bz2 | Vybalit příkazem: tar xjf zaloha.tar.bz2 | ||
Archív: zaloha.tar.xz | |||
Vybalit příkazem: tar xJf zaloha.tar.xz | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Řádek 54: | Řádek 64: | ||
Obecný zápis je uveden níže. | Obecný zápis je uveden níže. | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
mysqldump | mysqldump -u"NAZEV_UZIVATELE" -p"HESLO_UZIVATELE" -Q --opt --allow-keywords --hex-blob NAZEV_DB> ZALOHA.sql | ||
</syntaxhighlight> | </syntaxhighlight> | ||
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 | 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. | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
mysqldump | mysqldump -u"novyuzivatel" -p"noveheslo" -Q --opt --allow-keywords --hex-blob novadb > ~/work/zaloha.sql | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Do pracovního adresáře také lze vstoupit před tím, než bude export proveden, poté není třeba zadávat úplnou cestu. | Do pracovního adresáře také lze vstoupit před tím, než bude export proveden, poté není třeba zadávat úplnou cestu. | ||
[[Soubor:Sshdbimp3.jpg|800x800px|thumb|center|Export databáze]] | |||
Export velkých databází může být časově náročný. | Export velkých databází může být časově náročný. | ||
=== Export zálohy do archívu - zmenšení velikosti === | === Export zálohy do archívu - zmenšení velikosti === | ||
Řádek 71: | Řádek 83: | ||
Příklad pro vytvoření gzip a bzip2 zálohy: | Příklad pro vytvoření gzip a bzip2 zálohy: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
mysqldump | mysqldump -u"NAZEV_UZIVATELE" -p"HESLO_UZIVATELE" -Q --opt --allow-keywords --hex-blob NAZEV_DB | gzip > zaloha.sql.gz | ||
mysqldump | mysqldump -u"NAZEV_UZIVATELE" -p"HESLO_UZIVATELE" -Q --opt --allow-keywords --hex-blob NAZEV_DB | bzip2 > zaloha.sql.bz2 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Aktuální verze z 12. 1. 2019, 07:36
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