Mysql
 sql >> Base de données >  >> RDS >> Mysql

Supprimer la clause DEFINER des vidages MySQL

Je ne pense pas qu'il y ait un moyen d'ignorer l'ajout de DEFINER s à la décharge. Mais il existe des moyens de les supprimer après la création du fichier de vidage.

  1. Ouvrez le fichier de vidage dans un éditeur de texte et remplacez toutes les occurrences de [email protected] avec une chaîne vide ""

  2. Modifiez le vidage (ou redirigez la sortie) à l'aide de perl :

    perl -p -i.bak -e "s/DEFINER=\`\w.*\`@\`\d[0-3].*[0-3]\`//g" mydatabase.sql
    
  3. Transmettre la sortie via sed :

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