Autor Thema: Fehler: Ich benötige SUPER privileges für das Einspielen meiner SQL Sicherung  (Gelesen 148 mal)

Offline A.Büggeln - Profihost

  • Administrator
  • Newbie
  • *****
  • Beiträge: 45
    • Profil anzeigen
Eine typische Fehlermeldung dazu:

ERROR 1227 (42000) at line X: Access denied; you need (at least one of) the
SUPER privilege(s) for this operation

Diese Meldung ist typisch, wenn Trigger in der Datenbank Sicherung enthalten sind und Sie die Sicherung extern erstellt oder die Sicherung bei uns erzeugt und die Sicherung in eine neue / andere Datenbank einspielen wollen.

Auch wenn die Trigger z.B. am Anfang der Sicherung aufgeführt sind, aber die darin genutzten Tabellen erst später in der Sicherung angelegt werden, kann es zu Problemen kommen.

Diese Anleitung beugt beiden Problemen vor!

Zur Lösung muss die Sicherung nochmals mit dem Programm mysqldump erstellt werden.

Im folgenden Beispiel wird eine MySQL5 Datenbank Sicherung auf einem Server bei uns beschrieben:

* https://www.profihost.com/forum/mysql-datenbanken/unter-welchem-pfad-finde-ich-'mysqldump'/msg8103/#msg8103

Nacheinander werden nun erst die Daten, dann die Datenbank Struktur und am Ende die Trigger über eine SSH Sitzung gesichert.

Hinweis: USER dient als Platzhalter für den Benutzer der Quell-Datenbank.

/usr/local/mysql5/bin/mysqldump -u USER -p --no-create-info --skip-triggers --no-create-db usrdb_USER > data.sql
/usr/local/mysql5/bin/mysqldump -u USER -p --no-data --skip-triggers usrdb_USER > struct.sql
/usr/local/mysql5/bin/mysqldump -u USER -p --no-create-info --no-data --no-create-db usrdb_USER > trigger.sql

Ganz wichtig: Die Datei trigger.sql muss noch mit einem Texteditor geöffnet und pro Trigger der zur Ziel-Datenbank passende Benutzer im sog. DEFINER eingetragen werden.

Danach müssen die SQL Dateien in exakt folgender Reihenfolge in die neue Datenbank eingespielt werden:

Hinweis: USERNEU dient als Platzhalter für den Benutzer der Ziel-Datenbank.

/usr/local/mysql5/bin/mysql -u USERNEU -p usrdb_USERNEU < struct.sql
/usr/local/mysql5/bin/mysql -u USERNEU -p usrdb_USERNEU < data.sql
/usr/local/mysql5/bin/mysql -u USERNEU -p usrdb_USERNEU < trigger.sql
Mit freundlichen Grüßen
Andreas Büggeln
Profihost Team

Impressum