Remove DEFINER
Datenbank kann nicht korrekt importiert werden, wenn DEFINER angegeben wurde.
Für z.B. eine Testshopinstallation wird ein aktuelles Datenbank Abbild der Produktivumgebung benötigt. Regulär werden zum Beispiel bei Shopware 6 oder auch bei Wordpress im SQL Dump zusätzlich Angaben über den Ersteller des Dumps hinzugefügt, sogenannter DEFINER. Hat der neue Datenbankbenutzer nicht das MySQL Privileg: Super User, bricht der Import mit einer Fehlermeldung ab.
DEFINER aus einem existierenden DUMP entfernen
Wurde bereits ein SQL Dump erstellt, lässt sich die Angabe DEFINER mit dem folgenden Code entfernen:
sed -i 's/DEFINER=[^*]*\*/\*/g' [DATABASE.sql]DEFINER direkt beim erstellen des DUMPs entfernen
Mit dem Befehl sed lässt sich die DEFINER Angabe auch direkt beim Export entfernen. Das geht zum Beispiel mit dem folgenden Befehl:
mysqldump -u USER DATABASE_NAME -h SERVER | sed -e 's/DEFINER=[^*]*\*/\*/g' > DATABASE.sqlLast updated
Was this helpful?