sql >> Databáze >  >> RDS >> Mysql

Návod Jak zálohovat a obnovovat (exportovat a importovat) databáze MySQL

phpMyAdmin lze snadno exportovat nebo zálohovat databáze MySQL nebo MariaDB. Pokud je však velikost databáze velmi velká, pravděpodobně to nebude dobrý nápad. phpMyAdmin umožňuje uživatelům uložit výpis databáze jako soubor nebo zobrazit na obrazovce, což zahrnuje export příkazů SQL ze serveru a přenos dat přes pomalejší síťové připojení nebo internet do počítače uživatele. Tento proces zpomaluje proces exportu, prodlužuje dobu zamykání databáze a tím i nedostupnost MySQL nebo MariaDB, zpomaluje server a může jednoduše zkolabovat server Apache HTTPD, pokud příliš mnoho příchozích webových připojení zatěžuje zdroje systému.

Lepší způsob, jak zálohovat a exportovat databázi MySQL nebo MariaDB, je provést úlohu lokálně na serveru, takže data tabulek mohou být okamžitě a bez prodlení uložena na místní disk. Rychlost exportu bude tedy rychlejší a zkrátí se čas, kdy je databáze nebo tabulka MySQL nebo MariaDB uzamčena pro přístup. Tento tutoriál je průvodcem, jak zálohovat (exportovat) a obnovovat (importovat) databáze MySQL nebo MariaDB na samotném databázovém serveru pomocí mysqldump a mysql utility. V zásadě existují dva způsoby zálohování MySQL nebo MariaDB, jedním je zkopírování všech souborů tabulky (soubory *.frm, *.MYD a *.MYI) nebo použití mysqlhotcopy nástroj, ale funguje pouze pro tabulky MyISAM. Níže uvedený tutoriál se zaměří na mysqldump, který funguje pro tabulky MyISAM i InnoDB.

Jak exportovat nebo zálohovat nebo vypsat databázi MySQL nebo MariaDB

Chcete-li exportovat databázi MySQL nebo MariaDB do souboru výpisu, jednoduše zadejte do shellu následující syntaxi příkazu. Pokud nemáte přístup k fyzické schránce, můžete ke vzdálenému přihlášení k počítači použít Telnet nebo SSH.

mysqldump -u username -ppassword database_name > dump.sql

Nahraďte uživatelské jméno s platným ID uživatele MySQL nebo MariaDB, heslem s platným heslem pro uživatele (DŮLEŽITÉ:za -p a heslem žádná mezera, jinak vás mysqldump vyzve k zadání hesla, přesto bude heslo považovat za název databáze, takže záloha selže) a název_databáze se skutečným názvem databáze, kterou chcete exportovat. Nakonec můžete pro výstupní soubor výpisu SQL zadat libovolný název, zde je dump.sql .

Celá data, tabulky, struktury a databáze database_name budou zálohovány do textového souboru SQL s názvem dump.sql pomocí výše uvedeného příkazu.

Jak exportovat pouze databázové struktury MySQL nebo MariaDB

Pokud již data v tabulkách databáze nepotřebujete (nepravděpodobné), jednoduše přidejte –no-data přepněte na export pouze struktury tabulek. Například syntaxe je:

mysqldump -u username -ppassword --no-data database_name > dump.sql

Jak zálohovat pouze data databáze MySQL nebo MariaDB

Pokud chcete pouze zálohovat data, použijte –no-create-info volba. S tímto nastavením nebude výpis při importu znovu vytvářet databázi, tabulky, pole a další struktury. Toto použijte pouze v případě, že jste si docela jisti, že máte duplicitní databáze se stejnou strukturou, kde je potřeba pouze aktualizovat data.

mysqldump -u username -ppassword --no-create-info database_name > dump.sql

Jak uložit několik databází MySQL nebo MariaDB do textového souboru

–databáze umožňuje zadat více než 1 databázi. Příklad syntaxe:

mysqldump -u username -ppassword --databases db_name1 [db_name2 ...] > dump.sql

Jak vypsat všechny databáze na serveru MySQL nebo MariaDB

Chcete-li vypsat všechny databáze, použijte –all-databases a již není třeba zadávat název žádné databáze.

mysqldump -u username -ppassword --all-databases > dump.sql

Jak online zálohovat tabulky InnoDB

Zálohování databáze nevyhnutelné způsobí nedostupnost serveru MySQL nebo MariaDB aplikacím, protože při exportu všechny tabulky získaly globální zámek pro čtení pomocí FLUSH TABLES WITH READ LOCK na začátku výpisu až do konce. Takže ačkoli příkazy READ mohou pokračovat, všechny příkazy INSERT, UPDATE a DELETE se budou muset zařadit do fronty kvůli zamknutým tabulkám, jako kdyby MySQL nebo MariaDB nefungovaly nebo se zastavily. Pokud používáte InnoDB, –jedna transakce je způsob, jak minimalizovat dobu trvání uzamčení na téměř nulovou, jako při provádění online zálohy. Funguje tak, že načte souřadnice binárního logu, jakmile je zámek získán, a zámek je poté okamžitě uvolněn.

Syntaxe:

mysqldump -u username -ppassword  --all-databases --single-transaction > dump.sql

Jak obnovit a importovat databázi MySQL nebo MariaDB

Můžete obnovit z phpMyAdmin pomocí záložky Import. Pro rychlejší způsob nahrajte soubor výpisu na server MySQL nebo MariaDB a pomocí následujícího příkazu importujte databáze zpět na server MySQL nebo MariaDB.

mysql -u username -ppassword database_name < dump.sql
Pokud se chcete vzdáleně připojit k serverům MySQL nebo MariaDB na jiném serveru, přidejte -h název-serveru-nebo-IP-adresa na příkaz.

Import a export databáze MySQL nebo MariaDB je důležitý nejen pro obnovu dat v případě katastrofy, ale také poskytuje snadný způsob migrace nebo přesunu na jiný server, například při změně poskytovatele webhostingu. Pamatujte však na jeden společný problém – kódování znakové sady. Novější verze mysqldump používá UTF8 jako svou výchozí znakovou sadu, pokud není nic specifikováno, zatímco starší verze (starší než 4.1 typicky) používají Latin1 jako výchozí znakovou sadu. Pokud máte v databázi znakovou sadu Latin1 a uložíte ji do řazení UTF8, data se mohou stát jednoduše nesmyslnými, zkomolenými nebo nečitelnými (často se to stává na blogu WordPress). V tomto případě použijte –default-character-set=charset_name možnost zadat znakovou sadu nebo převést databázi na UTF8.


  1. Cizí klíč k jedné z mnoha tabulek?

  2. Zřetězení sloupce skupinou v R

  3. PŘIDAT SLOUPEK MySQL

  4. Vytváření plánů údržby v SQL Server