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

Export databáze MySQL nebo MariaDB

Pravidelné zálohování databáze je jedním z klíčových kroků po uvedení projektu do provozu. Frekvence zálohování může být jednou za den nebo týden. Denní záloha je upřednostňována pro aplikace, ve kterých jsou změny databáze častější. V případě databází s vysokou dostupností je třeba zvážit vhodné nastavení clusteru namísto vertikálního škálování. Tento výukový program vysvětluje použití mysqldump příkaz k provedení zálohy databáze. Stejný příkaz lze automatizovat pro provádění naplánovaných záloh.

Poznámky :Tento výukový program pokrývá pouze nejběžnější možnosti používané s mysqldump příkaz. Můžete také nahlédnout do oficiální dokumentace a prozkoumat všechny možné možnosti. Stejné příkazy lze použít k zálohování databázových serverů MySQL a MariaDB.

Místní zálohování

Záloha - Tato část vysvětluje vytvoření místní zálohy v souboru exportem jedné nebo více databází.

Oprávnění - mysqldump vyžaduje níže uvedená oprávnění k exportu databáze. Uživatelskému účtu použitému k exportu databáze musí být přiřazena příslušná oprávnění.

  • SELECT – pro výpis tabulek
  • ZOBRAZIT ZOBRAZENÍ – vypíše zobrazení
  • TRIGGER – pro výpis spouštěčů
  • ZAMKNOUT TABULKY – v případě, že není použita možnost --single-transaction

Příkaz – Níže je uvedeno použití mysqldump příkaz k vytvoření místní zálohy pro systémy založené na Windows i Linux včetně Ubuntu. Trojité tečky znamenají, že lze zadat více hodnot.

# Regular command - Usage - Windows, Linux
mysqldump [options] db_name [tbl_name ...] > <file path>
mysqldump [options] --databases db_name ... > <file path>
mysqldump [options] --all-databases > <file path>

Příklady použití běžného příkazu jsou uvedeny níže. Tyto ukázkové příkazy používají uživatele enterprise pořizovat zálohy databáze podniku . V případě, že uživatelský účet používá auth_socket, není nutné zadávat uživatele a heslo. algoritmus pro přihlášení k serveru MySQL. Uživatel systému má přímý přístup k databázi. Další informace o algoritmech hesel naleznete v části Jak používat nativní heslo s MySQL 5.7 a Jak nainstalovat MySQL 8 na Ubuntu.

Poznámky :Není nutné používat volbu -p v případě, že uživateli není přiděleno žádné heslo.

Níže jsou uvedeny příklady zálohování jedné databáze s uživatelským jménem, ​​hostitelem a portem. Heslo nesmí být poskytnuto s těmito příkazy z bezpečnostních důvodů. Můžete zadat heslo pro mysqldump v konfiguračním souboru, který je považován za bezpečnou možnost pro cron pracovní místa. Další možností je použít příkaz cat k použití šifrovaného hesla (podobně jako Plesk), jak je znázorněno v příkladech. Systém vás vyzve k zadání hesla v případě, že není uvedeno v příkazu. Tyto příkazy lze použít k exportu celé databáze nebo jedné či více tabulek.

# All tables - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise > enterprise.sql

# All tables - with username, with password - insecure
mysqldump -u enterprise -p'mypwd' enterprise > enterprise.sql

# All tables - with username, with password - Plesk way
mysqldump -u enterprise -p`cat /etc/psa/.psa.shadow` dbname > dbname.sql

# All tables - with host, with port, with username, without password - prompts for password
mysqldump -h localhost -p 3306 -u enterprise -p enterprise > enterprise.sql

# Single table(user) - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise [user] > enterprise.sql

# Multiple tables(user, profile) - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise user profile > enterprise.sql

Níže jsou uvedeny příklady zálohování více databází s uživatelským jménem, ​​hostitelem a portem.

# Multiple databases - with username, without password - prompts for password
mysqldump -u enterprise -p --databases enterprise vblog mshop > mydbs.sql

# Multiple databases - with username, with password
mysqldump -u enterprise -p'mypwd' --databases enterprise vblog mshop > mydbs.sql

Níže je uveden příklad zálohování všech databází s uživatelským jménem, ​​hostitelem a portem.

# All databases - with username, without password - prompts for password
mysqldump -u enterprise -p --all-databases > mydbs.sql

# All databases - with username, with password
mysqldump -u enterprise -p'mypwd' --all-databases > mydbs.sql

Uživatelé PowerShellu ve Windows budou potřebovat jiný příkaz, jak je uvedeno níže.

# PowerShell on Windows
shell> mysqldump [options] db_name [tbl_name ...] --result-file=<file path>
shell> mysqldump [options] --databases db_name ... --result-file=<file path>
shell> mysqldump [options] --all-databases --result-file=<file path>

# Example
shell> mysqldump -u enterprise -p enterprise --result-file=mydump.sql

Výše uvedené příkazy exportují vybranou databázi a tabulky do umístění souboru zadaného v příkazu.

Zálohování databáze

Tato část vysvětluje přenesení zálohy databáze do jiné databáze používané pro účely zálohování pomocí Shell Pipes. Můžeme buď exportovat databázi do místního souboru a pak tento soubor použít k importu do jiné databáze nebo přímo exportovat do jiné databáze pomocí shell pipe.

Níže uvedený příkaz lze použít k exportu databáze přímo do jiné databáze. Před provedením příkazu se také ujistěte, že máte přístup k oběma serverům.

# Export database to another database - Same server
mysqldump -u enterprise -p enterprise | mysql enterprise_backup

# Export database to another database - Different server
mysqldump -u enterprise -p enterprise | mysql -h host.example.com -p 3306 enterprise

Takto můžeme exportovat nebo zálohovat databázi.


  1. Hledání duplicitních řádků na serveru SQL Server

  2. Nelze se připojit k Postgres přes PHP, ale lze se připojit z příkazového řádku a PgAdmin na jiném počítači

  3. Nainstalujte MySQL na Mac

  4. Připojení zapalování k aplikaci Microsoft Access