1. Home
  2. Anleitungen /Tutorials
  3. Fehlermeldung beim Einspielen einer SQL Sicherung
  1. Home
  2. Wissensdatenbank
  3. ServerCon Onlinehandbuch
  4. Datenbanken (MySQL, MariaDB)
  5. Fehlermeldung beim Einspielen einer SQL Sicherung

Fehlermeldung beim Einspielen einer SQL Sicherung

Fehlermeldung:

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

oder:

mysqldump: Couldn’t execute 'SHOW FIELDS FROM `TABLENAME`': View 'usrdb_USER.TABLENAME' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them (1356)

Damit Sie keine Fehlermeldung beim Einspielen bekommen, müssen Sie die Sicherung auf der Quelle auf folgendem Wege erstellen:

Hinweis: Sie müssen USER durch den passenden Benutzernamen ersetzen.

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

/usr/local/mysql5/bin/mysqldump -u USER -p --no-data --no-tablespaces --skip-triggers usrdb_USER > struct.sql

/usr/local/mysql5/bin/mysqldump -u USER -p --no-create-info --no-data --no-tablespaces --no-create-db usrdb_USER > edit.sql

Ganz wichtig: Sie müssen die edit.sql editieren, damit der sog. DEFINER den korrekten Benutzernamen enthält und Sie die Sicherung ohne Fehler einspielen können:

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 < edit.sql

Hinweis: In einigen Fällen erlaubt MySQL das Einspielen des edit.sql nicht und Sie müssen nur folgendes SSH Kommando zum Anpassen absetzen:

sed 's/\sDEFINER=`[^`]*`@`[^`]*`//g' -i edit.sql

Damit entfernen Sie den Benutzer und MySQL legt dies beim Einspielen passend in der Datenbank an.

Aktualisiert am 18. August 2023
War dieser Artikel hilfreich?

Ähnliche Artikel