Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Entfernen Sie die DEFINER-Klausel aus den MySQL-Dumps

Ich glaube nicht, dass es eine Möglichkeit gibt, das Hinzufügen von DEFINER zu ignorieren s zur Müllkippe. Aber es gibt Möglichkeiten, sie zu entfernen, nachdem die Dump-Datei erstellt wurde.

  1. Öffnen Sie die Dump-Datei in einem Texteditor und ersetzen Sie alle Vorkommen von [email protected] mit einem leeren String ""

  2. Bearbeiten Sie den Dump (oder leiten Sie die Ausgabe weiter) mit perl :

    perl -p -i.bak -e "s/DEFINER=\`\w.*\`@\`\d[0-3].*[0-3]\`//g" mydatabase.sql
    
  3. Leiten Sie die Ausgabe durch sed :

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