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.