Fehler bei Migration von MySQL auf MariaDB

Hallo,

ich muss eine Shopware Installation (6.7.15.1) zu einem anderen Provider umziehen.

Bisher haben wir als Datenbank MySQL 8.0.43-34.

Auf dem neuen Server ist es MariaDB 10.11.19.

Installierte Erweiterungen sind: Shopware Store, Appflix Kleinanzeigen, Custom Jss/CSS, Paypal und moori Foundation.

Ich hatte schon folgenden Fehler:

#1273 - Unbekannte Sortierreihenfolge: ‚utf8mb4_0900_ai_ci‘

Den habe ich durch eine Ersetzung gelöst:

  • Suchen nach: utf8mb4_0900_ai_ci
  • Ersetzen mit: utf8mb4_unicode_520_ci

Nun bekomme ich aber den nächsten Fehler:

-- Indizes für die Tabelle flow

ALTER TABLE flowADD PRIMARY KEY (id),ADD KEY idx.flow.event_name (event_name,priority),ADD KEY fk.flow.app_flow_event_id (app_flow_event_id);


Fehlermeldung


#1071 - Schlüssel ist zu lang. Die maximale Schlüssellänge beträgt 1000

Irgendwie bringt die Suche im Netz ein uneindeutiges Ergebnis. Es könnte an den Einstellungen zur Datenbank liegen (nicht in meiner Hand, sondern in der des Providers).

Die andere Möglichkeit ist, dass man es damit fixt, dass die Tabellen-Felder kleiner angelegt werden… Klingt mir aber auch sehr nach Pflaster…

Deshalb hier die Frage an diejenigen, die sich viel besser auskennen: Wie kann ich das lösen?

Und vielleicht noch viel besser: Wie könnte ich die Migration ohne solche Pflaster durchführen?

Vielen Dank!!!

Nur ein Anmerkung:

Nach dem Wechsel von Shopware 5 auf Shopware 6 mussten wir (und der Shopware Support) damals leider festellen, das MariaDB unter Umständen für Shopware weniger geeignet ist. Daraufhin wurden alle Shopware Projekte auf MySQL 8 gewechselt. Bis auf Kleinigkeiten keine Probleme seit dem gehabt.

Leider habe ich keine Lösung zum oben genannten Problem. Aus Erfahrungen kann ich aber sagen, dass ein DB-Wechsel von MySQL8 auf MariaDB oder MariaDB auf MySQL8 immer problematisch sind.

Bei einem Provider-Wechsel immer vorher die Anforderungen prüfen ob die zum Shopware- Projekt passen, auch wenn es ein paar Euro mehr kostet.

So war es bei uns auch: Wechsel von MariaDB auf MySQL während Upgrade auf Shopware 6. Vor kurzem sind wir von 8.0 auf 8.4 gewechselt.

@shoppppppi
Zum Thema: warum nicht wieder einen Anbieter aussuchen der auch wieder MySQL anbietet? Ja der Anbieter könnte etwas teurer sein.

Wir nutzen TimmeHosting und diese können beides und sogar in mehreren Versionen einstellbar und haben auch ein Migrationstool dafür.

Der Anbieter sollte auch wenn möglich immer die aktuelle stabile LTS Version anbieten, siehe MariaDB | endoflife.date bzw. MySQL | endoflife.date
Mit MariaDB 10.11.x hast du ab Februar 2028 wieder das Problem auf eine neuere Version umsteigen zu müssen.

Keine Ahnung welchen Anbieter du hast aber z.B. Allinkl kann das nicht.

Generell: Shopware hat getestet mit:
„tested on MySQL 8, MySQL 9.7, MariaDB 11 and MariaDB 12“

MariaDB InnoDB hat laut KI 3000 Bytes Standard. MyISAM hingegen nur 1000 Bytes.

Ist die Standard-Speicher-Engine ggf. falsch?

Shopware legt (nahezu) alle Tabellen an als:

ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci

Wir sind bei IONOS und die bieten anscheinend kein MySQL mehr an, bei neuen Datenbanken und die alten MySQL Datenbanken können nicht mehr aktualisiert werden.

Unser Wechsel auf Maria DB vor kurzem lief reibungslos, Fehler gab es keine und die Performance scheint auch nicht schlechter zu sein.

Die Empfehlung ist auch mittlerweile eher MariaDB als MySQL.

Ich denke, hier könnte Claude Code sehr gut unterstützen.

Wer und wo wird das empfohlen? Das wundert mich ein wenig, da selbst der Shopware Support nur mit MySQL arbeitet.

Sie werden mit beiden arbeiten.
Shopware 6 unterstützt offiziell MariaDB, entsprechend werden die Entwickler beides testen, entsprechend wird auch der Support mit beiden arbeiten.

Hm, nach unseren Infos war das nicht so. Möglich das es jetzt so ist. Damals hatten wir ein Migrations-Problem bei einer ziemlich großen Datenbank (Shopbetreiber mit mehreren Millionen von Kuden und Bestellungen usw.). Hier hat sich eindeutig herausgestellt, dass MariaDB dem nicht gewachsen war. Mehrere Mitarbeiter vom Shopware Support hatten ausschließlich das Ganze mit MySQL gestetet (das ging über mehrere Wochen). Niemand hatte dort mit MariaDB getestet. Daher habe ich hier komplett andere Erfahrungen gesammelt was MariaDB betrifft. Seit dem habe wir alle Produkte mit MySQL laufen.

Ich nutze in Zusammenhang mit Shopware auch nur noch MySQL, weil es mit MariaDB eigentlich nur Probleme gab.

Welche Probleme hast du denn? Hast du GitHub issues angelegt? MariaDB ist Standard auf jeglichen Linux Servern seid 2017. MySQL ist auch seit Jahren auf dem sterben Ast keine Linux Distro will sie mehr aufnehmen, und man wird gezwungen über umwege direkt von Oracle zu installieren. Oracle selbst konzentriert sich nur noch auf ihre eigene Cloud + MySQL Heatwave (deren Cloud only Enterprise MySQL Lösung).

Vor kurzem hat erst Oracle Begriffen was das für sie auf langesicht heißt und versucht das ruderrumzureißen https://blogs.oracle.com/mysql/summary-of-mysql-public-discussion-4 . Aber ich denke da ist garkein vertrauen der ganzen Server Betriebsysteme mehr und allgemein sind alle sowieso zu MariaDB gewechselt über die Jahre. Es ist auch deutlich angenehmer mit MariaDB zusammen zu arbeiten wenn man Probleme hat, da erreicht man wenigstens leute und auf issues wird reagiert. Die MariaDB Foundation verwendet teilweise auch Shopware zum testen ihrer neuen Versionen und hat uns angeboten da auch auszuhelfen.

Als wir von MariaDB auf MySQL gewechselt sind, ist auch schon ein paar Jahre her. Das muss um Anfang 2023 gewesen sein. Sicherlich wurde MariaDB auch stark verbessert/erweitert.

Ist nicht so dass MySQL in der Community Edition nichts substantielles dazukommt am Beispiel 9.7 LTS, siehe gute Zusammenfassung: MySQL 9.7.0 LTS verfügbar | Timme Hosting

Persönlich ist es mir völlig egal, welcher SQL Server genutzt wird. Hauptsache dieser läuft performant und stabil.

Genau das. Aber so über die letzten Jahre hinweg hab ich eigentlich auch nur von Problemen mit MariaDB gelesen. Aus den verschiedensten Gründen. Daher von Anfang an MySQL genutzt. Eben mal bei unserem Hosting geschaut (IONOS) die bieten nur noch Maira an.

Ich kann es ehrlicherweise gar nicht mehr genau sagen. Da ich inzwischen darauf achte möglichst nur noch MySQL einzusetzen, hatte ich schon eine Welle keinen Kontakt mehr zu MariaDB.

ich kann mich nur noch daran erinnern, dass es 2-3 Projekte gab (> 1 -2 Jahre her), bei den es mit MariaDB Probleme gab. Seitdem war es ein rotes Tuch für mich - bei MySQL gab es diese Probleme nie.

Eigentlich ähnlich (negative) Erfahrungen, wie die von @R4M

Nach dem Wechsel von Shopware 5 auf Shopware 6 mussten wir (und der Shopware Support) damals leider festellen, das MariaDB unter Umständen für Shopware weniger geeignet ist. Daraufhin wurden alle Shopware Projekte auf MySQL 8 gewechselt. Bis auf Kleinigkeiten keine Probleme seit dem gehabt.

Vielleicht sollte ich aber MariaDB mal wieder eine Chance geben…

Was gab es denn so für Probleme, könnt ihr die mal schildern?

Ich selbst nutze MariaDB bei privaten Projekten schon seit Jahren, auch ich achte dabei auf Kompatibilität, was gar nicht mal so schwer ist, letztendlich baut MariaDB ja auf MySQL auf.

Das viele nun eher auf MariaDB setzen, hat wohl vor allem politische Gründe und weniger technische.

Shopware selbst hat ein oder zweimal Updates rausgebracht, die nicht mit MariaDB kompatibel waren. Wenn man die Minor-Version eingespielt hatte, dann hat es gekracht.

Ansonsten kenne ich selbst auch keine Einschränkungen.

Moin,

wir haben auch sämtliche Shops unserer Kunden auf MariaDB und hatten bisher noch nie Probleme. Tatsächlich gab es eher mit MySql Probleme bei Updates zb. Wenn uns Kunden die Entscheidung überlassen, nutzen wir ausschließlich MariaDB auch für die lokalen Entwicklungsumgebungen.

Und zur eigentlichen Frage: die meisten Hoster bieten doch einen kostenlosen Umzugsservice an. Würde das Problem dann einfach auslagern :slight_smile:

Grüße
Matthias

Hallo,

nun hat der Provider sich den Import angeschaut und mir folgende Tipps gegeben:

  1. In dem DB-Export SQL File ganz oben folgende zwei Zeilen einfügen:
SET default_storage_engine=InnoDB;
ALTER DATABASE CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  1. Ersetzen von „utf8mb4_0900_ai_ci“ durch "utf8mb4_unicode_ci

Mit diesen zwei Änderungen hat der Import funktioniert.

:grinning_face:

Nun habe ich das nächste Problem,… ich bekomme nur 404 Seiten zu sehen… Aber das ist für ein anderes Thema…

Vielen Dank für Eure Unterstützung (und vielen Dank an den Support von serverprofis.de)