Maison  >  Article  >  base de données  >  Comment supprimer les clauses DEFINER des dumps MySQL ?

Comment supprimer les clauses DEFINER des dumps MySQL ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-27 07:11:29726parcourir

How to Remove DEFINER Clauses from MySQL Dumps?

Suppression des clauses DEFINER des dumps MySQL

Les dumps MySQL incluent souvent des clauses DEFINER dans les instructions CREATE VIEW et CREATE PROCEDURE, telles que "DEFINER=root @localhost". Ces clauses peuvent être indésirables dans certains scénarios. Cet article explore les méthodes permettant de supprimer ces clauses des fichiers de vidage MySQL.

Solutions :

  1. Remplacement de l'éditeur de texte :

Ouvrez le fichier dump dans un éditeur de texte et effectuez une recherche et un remplacement global. Recherchez toutes les instances de "DEFINER=@" et remplacez-les par une chaîne vide.

  1. Commande Perl :

Modifiez le fichier de vidage en utilisant Perl avec la commande suivante :

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

Cela supprimera toutes les clauses DEFINER du fichier de vidage et créera une sauvegarde avec une extension ".bak".

  1. Sed Piping :

Diffusez la sortie de mysqldump via sed pour supprimer les clauses DEFINER :

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

Cette commande créera un nouveau fichier de vidage nommé "triggers_backup.sql" avec les clauses DEFINER supprimées.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn