Suppression de la clause DEFINER des dumps MySQL
Les dumps MySQL contiennent des clauses DEFINER, qui spécifient l'utilisateur et l'hôte qui ont créé les objets de base de données. Cependant, vous souhaiterez peut-être supprimer ces clauses pour des raisons de sécurité ou pour d'autres raisons.
Suppression des clauses DEFINER à l'aide de l'édition de texte
Une méthode consiste à modifier manuellement le fichier de vidage à l'aide d'un éditeur de texte. Recherchez les lignes contenant la clause DEFINER (par exemple, "DEFINER=root@localhost") et remplacez-les par des chaînes vides ("") ou toute valeur souhaitée.
Utiliser Perl pour supprimer les clauses DEFINER
Perl peut être utilisé pour supprimer les clauses du dump. Utilisez la commande suivante, en remplaçant "mydatabase.sql" par le nom du fichier de vidage :
perl -p -i.bak -e "s/DEFINER=\`\w.*\`@\`\d[0-3].*[0-3]\`//g" mydatabase.sql
Sortie de canalisation pour supprimer les clauses DEFINER
Vous pouvez également supprimer les clauses en dirigeant la sortie du dump via des commandes telles que sed :
mysqldump ... | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' > triggers_backup.sql
Cette commande remplacera la clause DEFINER par des astérisques (*). Vous pouvez personnaliser davantage le modèle de remplacement en fonction de vos besoins.
Remarque :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!