Import a export databáze přes SSH na multihostingu: Porovnání verzí

Z SvetHostingu.cz
Skočit na navigaci Skočit na vyhledávání
 
(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 -h"localhost" -u"NAZEV_UZIVATELE" -p"HESLO_UZIVATELE" NAZEV_DB < CESTA_K_DB
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 -h"localhost" -u"novyuzivatel" -p"noveheslo" novadb < ~/www/demo/demo12345/nahratdodb.sql
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 -h"localhost" -u"novyuzivatel" -p"noveheslo" novadb < ~/work/nahratdodb.sql
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 -h"localhost" -u"NAZEV_UZIVATELE" -p"HESLO_UZIVATELE" -Q --opt --allow-keywords --hex-blob NAZEV_DB> ZALOHA.sql
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 níze.
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 -h"localhost" -u"novyuzivatel" -p"noveheslo" -Q --opt --allow-keywords --hex-blob novadb > ~/work/zaloha.sql
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ý.
[[Soubor:Sshdbimp3.jpg|800x800px|thumb|center|Export databáze]]


=== 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 -h"localhost" -u"novyuzivatel" -p"noveheslo" -Q --opt --allow-keywords --hex-blob novadb | gzip > zaloha.sql.gz
mysqldump -u"NAZEV_UZIVATELE" -p"HESLO_UZIVATELE" -Q --opt --allow-keywords --hex-blob NAZEV_DB | gzip > zaloha.sql.gz
mysqldump -h"localhost" -u"novyuzivatel" -p"noveheslo" -Q --opt --allow-keywords --hex-blob novadb | bzip2 > zaloha.sql.bz2
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.

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