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

Rimuovere la clausola DEFINER da MySQL Dumps

Non credo ci sia un modo per ignorare l'aggiunta di DEFINER s alla discarica. Ma ci sono modi per rimuoverli dopo aver creato il file dump.

  1. Apri il file dump in un editor di testo e sostituisci tutte le occorrenze di [email protected] con una stringa vuota ""

  2. Modifica il dump (o reindirizza l'output) utilizzando perl :

    perl -p -i.bak -e "s/DEFINER=\`\w.*\`@\`\d[0-3].*[0-3]\`//g" mydatabase.sql
    
  3. Invia l'output tramite sed :

    mysqldump ... | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' > triggers_backup.sql