Entfernen von DEFINER-Klauseln aus MySQL-Dumps
MySQL-Dumps enthalten oft DEFINER-Klauseln in CREATE VIEW- und CREATE PROCEDURE-Anweisungen, wie zum Beispiel „DEFINER=root @localhost". Diese Klauseln können in bestimmten Szenarien unerwünscht sein. In diesem Artikel werden Methoden zum Entfernen dieser Klauseln aus MySQL-Dump-Dateien untersucht.
Lösungen:
Öffnen Sie die Dump-Datei in einem Texteditor und führen Sie eine globale Suche und Ersetzung durch. Finden Sie alle Instanzen von „DEFINER=
Bearbeiten Sie die Dump-Datei mit Perl mit dem folgenden Befehl:
perl -p -i.bak -e "s/DEFINER=\`\w.*\`@\`\d[0-3].*[0-3]\`//g" mydatabase.sql
Dadurch werden alle DEFINER-Klauseln aus der Dump-Datei entfernt und ein Backup mit der Erweiterung „.bak“ erstellt.
Leiten Sie die Ausgabe von mysqldump durch sed, um die DEFINER-Klauseln zu entfernen:
mysqldump ... | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' > triggers_backup.sql
Dieser Befehl erstellt eine neue Dump-Datei mit dem Namen „triggers_backup.sql“, wobei die DEFINER-Klauseln entfernt werden.
Das obige ist der detaillierte Inhalt vonWie entferne ich DEFINER-Klauseln aus MySQL-Dumps?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!