Obsah
Až budou hotové Zálohování databáze MySQL, je běžné používat příkaz mysqldump žádné možnosti. Tento příkaz má však mnoho zajímavých možností, které vám umožňují provádět pokročilé zálohy.
Standardně je Příkaz mysqldump generuje kopii struktury sql všech tabulek v databázi uvedeno v textovém souboru sql. Chcete -li zahrnout pouze jednu nebo více tabulek, zadejte jejich názvy za název databáze.
Z okna terminálu v adresáři mysql:
# Zálohování jedné tabulky $ mysqldump -user = uživatel --password = klíč tabulky tabulky> backup_sql
# Zálohujte tři tabulky $ mysqldump -user = uživatel --password = tabulka klíče databáze1 tabulka2 tabulka3> záložní_sqlPříklady 1 nebo 3 tabulek.
1. Vyloučení některých tabulek ze zálohy
Abychom do zálohy nezahrnuli konkrétní tabulku, musíme ji označit volbou --ignore-table, jejíž hodnota musí být uvedena
Pokud provádíte například zálohování databáze s názvem commerce, ale nechcete, aby byla zahrnuta tabulka s názvem sales, spusťte následující příkaz:
$ mysqldump --user = uživatel -heslo = heslo --ignore -table = merchant.sales obchodník> backup_back.sqlJinými slovy, zkopírujte celou obchodní databázi kromě prodejní tabulky. Pokud chceme vyloučit několik tabulek, musíme použít následující příkaz:
$ mysqldump --user = uživatel --password = heslo --ignore-table = commerce.sales --ignore-table = commerce.products --ignore-table = commerce. commerce ceny> backup_copy.sql(Chcete-li vyloučit více tabulek, zadejte jejich názvy s tolika možnostmi --ignore-table)
2. Omezení počtu záznamů v každé tabulce
Ve výchozím nastavení zkopíruje příkaz mysqldump všechny záznamy ze všech tabulek. Pokud chcete dříve filtrovat záznamy, přidejte možnost --where, která vám umožní určit podmínku typu WHERE, která je přidána k dotazům SELECT, které jsou provedeny k extrahování všech záznamů:
$ mysqldump --user = uživatel --password = heslo --where = "věk> 18 A věk backup_back.sqlPokud chceme z databáze extrahovat pouze některé záznamy, například prvních 500
$ mysqldump --user = uživatel -password = heslo --where = "1 limit 500" databáze> backup.sqlByly by extrahovány s limitem 500.
3. Zkopírujte pouze strukturu tabulek, ale ne jejich data
Standardně je příkaz mysqldump ukládá jak strukturu tabulek, tak všechny jejich informace. Pokud vás zajímá pouze dumping struktury tabulek a sloupců, použijte možnost --no-data. Můžete tedy vytvořit další databázi přesně stejnou, ale prázdnou:
$ mysqldump --user = uživatel --password = heslo-databáze bez dat> backup_sqlNormálně jsou generované vložky seskupeny do jednoho příkazu, aby se uložily řádky kódu následujícím způsobem:
VLOŽTE DO HODNOTY tabulky (1, 'name1'), (2, 'name2'), (3, 'name3');Toto je chování, které může u starších systémů neschopných zpracovávat dlouhé řádky způsobit chyby. Podobně můžete při pokusu o otevření záložního souboru, který obsahuje tyto dlouhé řádky, narazit na problémy s textovým editorem.
Pokud se potýkáme s tímto případem, můžeme tuto možnost přidat --extended-insert = false aby každý INSERT běžel s vlastním příkazem:
$ mysqldump --user = uživatel -password = heslo --extended -insert = falešná databáze> backup_sqlVýsledkem bude následující:
VLOŽTE DO HODNOT tabulky (1, 'name1'); VLOŽTE DO HODNOTY tabulky (2, 'name2'); VLOŽTE DO HODNOTY tabulky (3, 'name3');Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod