sql >> Databasteknik >  >> RDS >> Mysql

Hur säkerhetskopierar man hela MySQL-databasen med alla användare och behörigheter och lösenord?

Som mest grundläggande är mysqldump-kommandot du kan använda:

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

Det kommer att inkludera mysql-databasen, som kommer att ha alla användare/privs-tabeller.

Det finns nackdelar med att köra detta på ett produktionssystem eftersom det kan orsaka låsning. Om dina bord är tillräckligt små kanske det inte har någon betydande inverkan. Du vill testa det först.

Men om du kör en ren InnoDB-miljö kan du använda --single-transaction flagga som kommer att skapa dumpen i en enda transaktion (get it) vilket förhindrar låsning av databasen. Observera att det finns hörnfall där den initiala FLUSH TABLES kommando som körs av dumpen kan låsa tabellerna. Om så är fallet, döda dumpningen och starta om den. Jag skulle också rekommendera att om du använder detta för säkerhetskopieringsändamål, använd --master-data flagga också för att få de binära loggkoordinaterna från där dumpningen togs. På så sätt, om du behöver återställa, kan du importera dumpfilen och sedan använda mysqlbinlog kommando för att spela upp de binära loggfilerna från den position där denna dump togs.



  1. Gruppvis maximalt

  2. Hur man skapar historik ELLER granskar vyer från Change Data Capture-tabeller (CDC) i SQL Server - SQL Server Tutorial

  3. MySQL var INTE I namnmatrisen?

  4. Aggregerad funktion i MySQL - lista (som LISTAGG i Oracle)