Per altre informazioni scrivi a fabriziocaldarelli@negusweb.it
Backup completo mysql con routines e triggers
Da Programmazione Software.
Versione del 26 apr 2014 alle 12:20 di Fabrizio Caldarelli (Discussione | contributi)
Per eseguire un backup completo di un db mysql è possibile utilizzare l'istruzione dump. L'unico problema è se volessimo usare questo backup per creare un nuovo db con un nuovo utente per l'accesso, i triggers e le routines (stored procedure e functions) hanno un definer. E' necessario dunque elimare rimuovere dall'esportazione del sql il definer, altrimenti non si potrà accedere alle routines.
Il comando è il seguente:
Backup
mysqldump -u [usernme] -p[password] [database] --routines --triggers > backup.sql sed -e 's/DEFINER=`[^`]+`@`[^`]+`/DEFINER=CURRENT_USER/g' backup.sql > backup_senza_definer.sql
In questo modo posiamo importare in un nuovo db con un nuovo user il backup appena fatto:
Restore
mysql -u [altro_username] -p[altra_password] [altro_database] < backup_senza_definer.sql