sql >> Database >  >> RDS >> Mysql

Hoe maak je een back-up van de hele MySQL-database met alle gebruikers en machtigingen en wachtwoorden?

In de basis is het mysqldump-commando dat u kunt gebruiken:

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

Dat omvat de mysql-database, die alle gebruikers/privs-tabellen zal hebben.

Er zijn nadelen aan het uitvoeren van dit op een productiesysteem, omdat het vergrendeling kan veroorzaken. Als uw tabellen klein genoeg zijn, heeft dit mogelijk geen significante impact. Je zult het eerst willen testen.

Als u echter een pure InnoDB-omgeving gebruikt, kunt u de --single-transaction gebruiken vlag die de dump in een enkele transactie zal maken (haal het), waardoor vergrendeling van de database wordt voorkomen. Let op, er zijn hoekgevallen waarbij de initiële FLUSH TABLES commando uitgevoerd door de dump kan de tabellen vergrendelen. Als dat het geval is, sluit u de dump af en start u deze opnieuw. Ik zou ook aanraden dat als je dit voor back-updoeleinden gebruikt, gebruik de --master-data vlag ook om de binaire log-coördinaten te krijgen van waar de dump is genomen. Op die manier kunt u, als u moet herstellen, het dumpbestand importeren en vervolgens de mysqlbinlog gebruiken commando om de binaire logbestanden opnieuw af te spelen vanaf de positie waar deze dump is genomen.



  1. Query's loggen in PostgreSQL

  2. Hoe maak ik verbinding met MySQL 5.1 in Visual Studio 2010?

  3. Laravel-migratie:verwijder onDelete('cascade') van bestaande externe sleutel

  4. SET en Select Query combineren Uitvoeren in een enkele MySql-query om het resultaat in pentaho door te geven