Mysql
 sql >> Database >  >> RDS >> Mysql

Come eseguire il backup dell'intero database MySQL con tutti gli utenti, le autorizzazioni e le password?

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.