Ich kann die MySQL-Datenbank nicht innerhalb der GCP MySQL-Instanz wiederherstellen

Ich kann die MySQL-Datenbank nicht innerhalb der GCP MySQL-Instanz wiederherstellen

Ich habe versucht, eine MySQL-Datenbank aus einer SQL-Datei im GCP-Speicher wiederherzustellen. Der Schritt bestand darin, meine Datenbanksicherungsdatei in den GCP-Speicher hochzuladen. Anschließend habe ich diese SQL-Datei in eine angegebene Datenbank innerhalb der GCP MySQL-Instanz importiert. Es dauerte eine Weile, bis die Ausnahme auftrat, die

 Import error: exit status 1 ERROR 1227 (42000) at line 10871: Access denied; you need (at least one of) the SUPER privilege(s) for this operation

dann habe ich versucht, dem Root oder einem anderen Benutzer Superrechte zu erteilen, aber das hat trotzdem nicht funktioniert. Ich konnte jedoch keine Superrechte erteilen. Ich habe keine Ahnung, wie ich dieses Problem lösen soll. Für jede Hilfe wäre ich sehr dankbar.

Update (17. Januar 2020): das Problem habe ich gelöst

Ich habe versucht, die Zeile zu finden, in der die Ausnahme aufgetreten ist

$ sed -n -e 10870p -e 10871p -e 10872p -e 10873p beispiel.sql

und ich fand

/*!50013 DEFINER= root@ localhostSQL-SICHERHEITS-DEFINER */

dann habe ich diesen Befehl verwendet, um die Anweisung zu entfernen, die das Problem hat

cat beispiel.sql | sed -e 's/DEFINER= root@ localhost//g' > beispiel-CLEANED.sql

dann ist es erledigt

Antwort1

Der CURRENT_USERsollte über SUPERBerechtigungen verfügen, der aktuelle DEFINERhat sie jedoch nicht. Erstellen Sie einen erneuten Dump mit mysqldump --skip-definer(wäre der geringste Aufwand). Wenn dies keine Option sein sollte, bearbeiten Sie den Dump und entfernen Sie entweder den DEFINERoder ersetzen Sie alle Vorkommen durch CURRENT_USER. Bestimmte SETAnweisungen im Dump könnten möglicherweise ebenfalls das Problem verursachen.

verwandte Informationen