darf mich kurz vorstellen, Michael mein Name, habe vor kurzem die Verwaltung eines Oxid Shops eines Bekannten übernommen.
Der Wunsch war eine Möglichkeit zu schaffen, die Updates bzw. neue Erweiterungen vorher testen zu können, daher lag die Erstellung eines Testsystems naheliegend.
Die Vorgehensweise daher recht einfach: Kopie der Daten vom FTP ziehen, Dump aus der SQL DB ziehen und alles auf einer Subdomain wieder hochladen. Soweit sogut. Die FTP Daten waren auch kein Problem, allerdings erhalte ich folgende Fehlermeldung beim Importversuch in neue, leere DB:
SQL query: Documentation
CREATE ALGORITHM=UNDEFINED DEFINER=shop_web1@% SQL SECURITY INVOKER VIEW oxv_ddmenu AS select ddmenu.OXID AS OXID,ddmenu.OXSHOPID AS OXSHOPID,ddmenu.DDNAME AS DDNAME,ddmenu.DDNAME_1 AS DDNAME_1,ddmenu.DDNAME_2 AS DDNAME_2,ddmenu.`D
MySQL said: Documentation #1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation
Anscheinend existiert in der OriginalDB schon ein Fehler, der allerdings keine Auswirkungen auf den Live-Shop hat.
Der Eintrag findet sich mehrere Dutzend Male im Dump wieder (ab VIEW mit immer anderem Text)
Kennt jemand diesen Fehler und hat eventuell eine Lösung parat?
CREATE ALGORITHM=UNDEFINED DEFINER=shop_web1@% SQL SECURITY INVOKER VIEW oxv_ddmenu AS select ddmenu.OXID AS OXID,ddmenu.OXSHOPID AS OXSHOPID,ddmenu.DDNAME AS DDNAME,ddmenu.DDNAME_1 AS DDNAME_1,ddmenu.DDNAME_2 AS DDNAME_2,ddmenu.DDNAME_3 AS DDNAME_3,ddmenu.DDACTIVE AS DDACTIVE,ddmenu.DDSORT AS DDSORT,ddmenu.DDTYPE AS DDTYPE,ddmenu.DDCONTENTTYPE AS DDCONTENTTYPE,ddmenu.DDCATEGORYID AS DDCATEGORYID,ddmenu.DDCATEGORYLVL AS DDCATEGORYLVL,ddmenu.DDCONTENTCATEGORYID AS DDCONTENTCATEGORYID,ddmenu.DDCONTENTACTIVE AS DDCONTENTACTIVE,ddmenu.DDLINK AS DDLINK,ddmenu.DDLINK_1 AS DDLINK_1,ddmenu.DDLINK_2 AS DDLINK_2,ddmenu.DDLINK_3 AS DDLINK_3,ddmenu.DDLINKTARGET AS DDLINKTARGET,ddmenu.DDWIDGETS AS DDWIDGETS,ddmenu.DDWIDGETS_1 AS DDWIDGETS_1,ddmenu.DDWIDGETS_2 AS DDWIDGETS_2,ddmenu.DDWIDGETS_3 AS DDWIDGETS_3,ddmenu.OXTIMESTAMP AS OXTIMESTAMP,ddmenu[…]
MySQL meldet: Dokumentation #1227 - Kein Zugriff. Hierfür wird die Berechtigung SUPER benötigt
Beim Dump wurden keine Tabellen mit dem Präfix oxv_ mit exportiert…
Das war auch der erste Ansatz vom Support, die meinten, alles hinter VIEW aus der Zeile rauslöschen. Brachte allerdings auch keinen Erfolg. Muss das VIEW hier doch mitgelöscht werden, d.h. alles ab INVOKER?
“brachte keinen Erfolg” ist leider keine verwertbare Fehlermeldung, die man analysieren kann, wir bräuchten dann schon die Fehlermeldung, die beim Ausführen kam.
Aber generell muss man einzelne SQL Anweisungen komplett entfernen, da eine halbe Anweisung ebenso zu einem Fehler führt, wie eine nicht ausführbare Anweisung. SQL Anweisungen, auch “Queries” genannt, werden mit einem ; beendet, d.h. Du musst den Semikolon vor der View-Anweisung finden und alles nach diesem Semikolon bis zum nächsten Semikolon + den Semikolon selbst löschen.
Problem ist, im Dump findet sich in der Zeile nur ganz am Schluss ein Semikolon:
–
– Struktur des Views oxv_ddmenu_en
DROP TABLE IF EXISTS oxv_ddmenu_en;
CREATE ALGORITHM=UNDEFINED DEFINER=shop_web1@% SQL SECURITY INVOKER VIEW oxv_ddmenu_en AS select ddmenu.OXID AS OXID,ddmenu.OXSHOPID AS OXSHOPID,ddmenu.DDNAME_1 AS DDNAME,ddmenu.DDACTIVE AS DDACTIVE,ddmenu.DDSORT AS DDSORT,ddmenu.DDTYPE AS DDTYPE,ddmenu.DDCONTENTTYPE AS DDCONTENTTYPE,ddmenu.DDCATEGORYID AS DDCATEGORYID,ddmenu.DDCATEGORYLVL AS DDCATEGORYLVL,ddmenu.DDCONTENTCATEGORYID AS DDCONTENTCATEGORYID,ddmenu.DDCONTENTACTIVE AS DDCONTENTACTIVE,ddmenu.DDLINK_1 AS DDLINK,ddmenu.DDLINKTARGET AS DDLINKTARGET,ddmenu.DDWIDGETS_1 AS DDWIDGETS,ddmenu.OXTIMESTAMP AS OXTIMESTAMP,ddmenu.OXSHOPINCL AS OXSHOPINCL,ddmenu.OXSHOPEXCL AS OXSHOPEXCL,ddmenu.OXMAPID AS OXMAPID from ddmenu ;
Ohne die Anweisungen bearbeiten zu müssen, kannst auch in der Original-Datenbank alle mit “oxv_” beginnenden Tabellen löschen, bevor Du ein Backup erstelltst. Nicht vergessen, danach
die Views im Admin wiederherzustellen.
Das wurde mir weiter oben schon empfohlen, brachte leider auch nichts.
Neue Fehlermeldung:
SQL-Befehl: Dokumentation
CREATE ALGORITHM=UNDEFINED DEFINER=shop_web1@% SQL SECURITY INVOKER VIEW oxv_ddmenu AS select ddmenu.OXID AS OXID,ddmenu.OXSHOPID AS OXSHOPID,ddmenu.DDNAME AS DDNAME,ddmenu.DDNAME_1 AS DDNAME_1,ddmenu.DDNAME_2 AS DDNAME_2,ddmenu.DDNAME_3 AS DDNAME_3,ddmenu.DDACTIVE AS DDACTIVE,ddmenu.DDSORT AS DDSORT,ddmenu.DDTYPE AS DDTYPE,ddmenu.DDCONTENTTYPE AS DDCONTENTTYPE,ddmenu.DDCATEGORYID AS DDCATEGORYID,ddmenu.DDCATEGORYLVL AS DDCATEGORYLVL,ddmenu.DDCONTENTCATEGORYID AS DDCONTENTCATEGORYID,ddmenu.DDCONTENTACTIVE AS DDCONTENTACTIVE,ddmenu.DDLINK AS DDLINK,ddmenu.DDLINK_1 AS DDLINK_1,ddmenu.DDLINK_2 AS DDLINK_2,ddmenu.DDLINK_3 AS DDLINK_3,ddmenu.DDLINKTARGET AS DDLINKTARGET,ddmenu.DDWIDGETS AS DDWIDGETS,ddmenu.DDWIDGETS_1 AS DDWIDGETS_1,ddmenu.DDWIDGETS_2 AS DDWIDGETS_2,ddmenu.DDWIDGETS_3 AS DDWIDGETS_3,ddmenu.OXTIMESTAMP AS OXTIMESTAMP,ddmenu[…]
MySQL meldet: Dokumentation #1227 - Kein Zugriff. Hierfür wird die Berechtigung SUPER benötigt
Wie darf ich das verstehen? Mehr als die Tabellen nicht exportieren und dann versuchen den Dump in eine neue DB zu importieren hätte ich hier nicht rausgelesen. Aus der Live-Datenbank lösche ich keine Tabellen raus…
In der Original DB gib es eine Unterteilung in “Ansichten” und “Tabellen”. Unter “Ansichten” sind nur Tabellen mit oxv_ Präfix enthalten. Daher habe ich nur den Inhalt von “Tabellen” exportiert.
Beim Importversuch in eine neue DB erhalte ich diese Fehlermeldung:
SQL-Befehl: Dokumentation
CREATE ALGORITHM=UNDEFINED DEFINER=shop_web1@% SQL SECURITY INVOKER VIEW oxv_ddmenu AS select ddmenu.OXID AS OXID,ddmenu.OXSHOPID AS OXSHOPID,ddmenu.DDNAME AS DDNAME,ddmenu.DDNAME_1 AS DDNAME_1,ddmenu.DDNAME_2 AS DDNAME_2,ddmenu.DDNAME_3 AS DDNAME_3,ddmenu.DDACTIVE AS DDACTIVE,ddmenu.DDSORT AS DDSORT,ddmenu.DDTYPE AS DDTYPE,ddmenu.DDCONTENTTYPE AS DDCONTENTTYPE,ddmenu.DDCATEGORYID AS DDCATEGORYID,ddmenu.DDCATEGORYLVL AS DDCATEGORYLVL,ddmenu.DDCONTENTCATEGORYID AS DDCONTENTCATEGORYID,ddmenu.DDCONTENTACTIVE AS DDCONTENTACTIVE,ddmenu.DDLINK AS DDLINK,ddmenu.DDLINK_1 AS DDLINK_1,ddmenu.DDLINK_2 AS DDLINK_2,ddmenu.DDLINK_3 AS DDLINK_3,ddmenu.DDLINKTARGET AS DDLINKTARGET,ddmenu.DDWIDGETS AS DDWIDGETS,ddmenu.DDWIDGETS_1 AS DDWIDGETS_1,ddmenu.DDWIDGETS_2 AS DDWIDGETS_2,ddmenu.DDWIDGETS_3 AS DDWIDGETS_3,ddmenu.OXTIMESTAMP AS OXTIMESTAMP,ddmenu[…]
MySQL meldet: Dokumentation #1227 - Kein Zugriff. Hierfür wird die Berechtigung SUPER benötigt
=> Wie würde ich die VIEWS restlos aus dem Dump rausbekommen?