Per altre informazioni scrivi a fabriziocaldarelli@negusweb.it
Backup completo mysql con routines e triggers: differenze tra le versioni
Da Programmazione Software.
(Creata pagina con "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 nu...") |
|||
Riga 19: | Riga 19: | ||
mysql -u [altro_username] -p[altra_password] [altro_database] < backup_senza_definer.sql | mysql -u [altro_username] -p[altra_password] [altro_database] < backup_senza_definer.sql | ||
</source> | </source> | ||
+ | |||
+ | [[category:MySQL]][[category:Database]] |
Versione delle 12:19, 26 apr 2014
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