In sostanza, il comando mysqldump che puoi usare è:
mysqldump -u$user -p$pass -S $socket --all-databases > db_backup.sql
Ciò includerà il database mysql, che avrà tutte le tabelle users/privs.
Ci sono degli svantaggi nell'esecuzione di questo su un sistema di produzione in quanto può causare il blocco. Se i tuoi tavoli sono abbastanza piccoli, potrebbe non avere un impatto significativo. Prima vorrai testarlo.
Tuttavia, se stai eseguendo un ambiente InnoDB puro, puoi utilizzare --single-transaction
flag che creerà il dump in una singola transazione (prendilo) impedendo così il blocco del database. Nota, ci sono casi d'angolo in cui l'iniziale FLUSH TABLES
il comando eseguito dal dump può bloccare le tabelle. In tal caso, elimina il dump e riavvialo. Consiglierei inoltre di utilizzare questo per scopi di backup, utilizzare il --master-data
flag anche per ottenere le coordinate del log binario da dove è stato preso il dump. In questo modo, se devi ripristinare, puoi importare il file dump e quindi utilizzare il mysqlbinlog
comando per riprodurre i file di registro binari dalla posizione in cui è stato eseguito questo dump.