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