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

Jak zálohovat celou databázi MySQL se všemi uživateli a oprávněními a hesly?

Nejzákladnější je příkaz mysqldump, který můžete použít:

mysqldump -u$user -p$pass -S $socket --all-databases > db_backup.sql

To bude zahrnovat databázi mysql, která bude mít všechny tabulky uživatelů/priv.

Spuštění tohoto na produkčním systému má své nevýhody, protože může způsobit zamykání. Pokud jsou vaše stoly dostatečně malé, nemusí to mít významný dopad. Nejprve to budete chtít vyzkoušet.

Pokud však provozujete čisté prostředí InnoDB, můžete použít --single-transaction příznak, který vytvoří výpis v jediné transakci (get it), čímž zabrání uzamčení databáze. Všimněte si, že existují rohové případy, kde je počáteční FLUSH TABLES příkaz spuštěný výpisem může uzamknout tabulky. V takovém případě ukončete výpis a restartujte jej. Pokud to používáte pro účely zálohování, doporučuji také použít --master-data flag také pro získání souřadnic binárního protokolu, odkud byl výpis pořízen. Tímto způsobem, pokud potřebujete obnovit, můžete importovat soubor výpisu a poté použít mysqlbinlog příkaz k přehrání binárních souborů protokolu z pozice, kde byl tento výpis pořízen.



  1. Vzdálené připojení k databázi clearDB heroku

  2. Jak funguje SQLite Rtrim()

  3. chyba cizího klíče mysql #1452

  4. Jak získat poslední ID vložení v Oracle pomocí MyBatis?