Wie kann ich sicher mit Mysql-Standard-DB auf Maria-DB umziehen?

  • Hallo!

    Ich erlebe gerade mit zwei Produktiv-Sites ein Problem, sobald ich eine bestimmte Joomla-Erweiterung verwenden will. Nach Diskussion mit den Entwicklern der Erweiterung deutet alles darauf hin, dass die Ursache in der MySQL-Datenbank liegt. Denn zwei Sites mit der Maria-DB funktionieren auf Anhieb einwandfrei und drei andere mit einer Standard-MySQL-Datenbank haben Probleme.


    Meine Frage:

    Auf welche Weise kann ich den Inhalt der bisherigen Datenbank in eine Maria-DB hinein bekommen und dann die Joomla-Site mit der neu angelegten Maria-DB verbinden?


    Meine eigenen Ideen dazu:

    a) mit Akeeba-Backup die ganze Site sichern und in einen neu angelegten Webspace mit Maria-DB hinein kopieren

    b) aus der bestehenden Datenbank einen Dump erstellen und diesen in die Maria-DB importieren und dann die aktuelle Site mit der neuen DB verbinden.


    Schwierigkeiten können auch durch die Unterschiede entstehen, die ich in der System-Info finde, wenn ich eine funktionierende Site mit Maria-DB vergleiche mit den System-Infos der Produktiv-Sites:


    Funktioniert:

    Code
    Datenbanktyp mysql
    Datenbankversion 5.5.5-10.3.11-MariaDB-log
    Datenbankzeichensatz utf8_general_ci
    Datenbankverbindungszeichensatz utf8mb4_general_ci
    PHP-Version 7.3.18-1+0~20200515.59+debian9~1.gbp12fa4f


    Funktioniert mit der gewünschten Joomla-Erweiterung nicht:

    Code
    Datenbanktyp mysql
    Datenbankversion 8.0.15
    Datenbankzeichensatz utf8mb4_general_ci
    Datenbankverbindungszeichensatz utf8mb4_0900_ai_ci
    PHP-Version 7.3.18-1+0~20200515.59+debian9~1.gbp12fa4f

    Da es sich um Produktiv-Sites handelt, auf die ich angewiesen bin, muss ich sehr sorgfältig vorgehen, damit Besucher immer etwas Funktionierendes ausgeliefert bekommen.

  • MySQL wurde 2008 an Sun Microsystems verkauft und seitdem kommerzialisiert, will sagen, es gibt zwar immer noch eine Open Source Version, die hinkt aber hinter der kommerziellen her. Deshalb hat der Entwickler von mySQL seine Datenbank unter dem Namen MariadB weiterentwickelt.

    Im Grunde genommen sind die beiden Datenbanken zu fast 100% kompatibel, ich habe jedenfalls noch nie Schwierigkeiten beim Wechsel von einer zur andern bemerkt, wobe ich sagen muss, dass es sich immer um einen Wechsel von mySQL zu Maria gehandelt hat.

    Was sind den die Probleme, die du hast? Gibt es eine Fehlermeldung? Hat es mit utf8mb zu tun (Primärschlüssel zu lang)?

  • Danke für deine Antwort! Bleibt aber noch die Frage nach den unterschiedlichen Zeichensätzen.


    Wie soll ich damit umgehen?


    Sorry, hab deine Frage zuletzt übersehen. Die fragliche Erweiterung heisst SEO Glossary. Sobald die Komponente aktiv geschaltet wird und die Texte der Beiträge nach Glossary-Worten durchsucht wird, erscheint im Frontend nur noch die Fehlermeldung, dass Regular Expressions einen Fehler verursachen. Die gesamte Site ist damit platt / blockiert.


    Allerdings haben meine Produktivseiten gemeinsam noch einen Fehler, der bereits in diesem Forum (ohne Ergebnis) diskutiert wurde: Ich werde häufig im Backend einfach ausgeloggt. Zuverlässige Arbeit im Backend ist damit kaum möglich.
    Es ist denkbar, dass dieser Fehler mit dem Zeichensatz in Verbindung steht.

  • Ich kenne diese Erweiterung nicht, kann dir nicht helfen. Ich habe mich in erster Linie gemeldet, weil ich dachte, das Problem liege vielleicht in diesem blöden 767-Byte Problem beim Import von SQL Dateien (Specified key was too long; max key length is 767 bytes).

  • Nein, den Versuch eines Import habe ich noch gar nicht unternommen. Ich möchte mich ja vorher informieren, um unnötige und zeitfressende Fehler zu vermeiden.

    Der Fehler betr. Reg-ex, den SEO Glossary zeigt, könnte durchaus mit den unterschiedlichen Zeichensätzen zu tun haben. Deshalb wäre es ja sinnvoll, schon vo dem Import nach Maria-DB die Zeichensatzgeschichte zu klären bzw. zu korrigieren. I

    ch weiß bloß nicht wie ich das machen könnte! Daher meine Frage hier.

  • Ich möchte beim Import den Weg gehen, eine neue Maria-DB durch Import des Dump der alten DB erstellen und dann mit der bestehenden Joomla-Installation einbinden (neue DB in die configuration.php eintragen).


    Hab leider jetzt ein Problem beim Import:

    Zuerst habe ich aus der bestehenden MySQL-DB mittels der GUI MySQL-Admin einen Dump herunter geladen. Dann habe ich in eine bereits angelegte Maria-DB den Dump hochgeladen. Dabei gab es nach einer relativ langen Zeit eine Fehlermeldung:

    Nachdem ich den Zurück-Button im Browser betätigt hatte, sah ich in einem rot hinterlegten Bereich einen anscheinend detaillierten Fehlerbericht, den ich aber mangels Kenntnisse nicht interpretieren kann:

    Ich habe dann hier nachgelesen (aber auch fast nichts verstanden):

    https://mariadb.com/kb/en/importing-data-into-mariadb/


    Aber im Abschnitt „mysqlimport“ inspirierte mich der Inhalt des Kastens, dass es möglicher Weise einen Konflikt mit dem Datenbank-Prefix, dem DB-User und DB_Passwort geben könnte.

    Hätte ich also vor dem Import eine neue leere Maria-DB anlegen müssen, die den gleichen Usernamen, Passwort und Prefix hat, wie die DB, deren Dump ich importieren möchte?

    Und könnte es sein, dass der Dateiname des Dump, der ja auf die ursprüngliche DB verweist oder den Namen der ursprünglichen DB enthält, irgendwie in Konflikt mit dem Namen der neuen Maria-DB steht?


    Wie muss ich also den Import meines Dump korrekt durchführen?

  • Wenn ich das Eingangsposting richtig verstande habe, geht es darum das ein Import nach MySQL nicht funktioniert, weil utf8mb4 genutzt wird. Das steht in MySQL bis 5.5 nicht zur Verfügung. Im Dump kann man utf8mb4 geben utf8 ersetzen. Einfach mit einem Editir editieren. Aber bitte kein Notepad! Die Codierung der Dump-Datei darf nicht verändert werden.

    I.d.R. hat das herabssetzen von utf8mb4 auf utf8 keine besondere Auswirkung, es sei denn es wird tatsächlich der mit utf8mb4 erweiterte Zeichensatz zwangsweise benötigt. Das ist nur wirklich selten der Fall.


    Möglicherweise funktioniert aber die Installation einer Komponente unter MySQL 5.5 nicht? Dann bleibt normalerweise nur die Möglichkeit die Datenbankversion zu wechseln. Welche Möglichkeiten es hier gibt, kann Dir nur Dein Hoster beantworten. Du brauchst dann MYSQl 5.6 oder höher oder MariaDB 10.1 oder höher.

  • flotte Also ungewöhnliche Zeichen gibt es auf meinen Websites nicht. Daher wäre ein erweiterter Zeichensatz in der DB nicht nötig.


    Wie ich oben angab, nutze ich sowohl unter MySQL als auch unter MariaDB bereits Versionen größer 5.5, sodass utf8mb4 von beiden genutzt werden kann.

    Darauf deutet auch hin, dass insgesamt drei meiner Test-Websites auf der MariaDB einwandfrei laufen, einschließlich der kritischen Joomla-Extension. Diese Sites wurden allerdings auch von Anfang an auf MariaDB installiert und nicht zunächst auf einer MySQL DB.

    Die Version von MariaDB ist, wie ich oben schrieb:
    Datenbankversion 5.5.5-10.3.11-MariaDB-log


    Mag sein, dass es inzwischen Neueres gibt. Mich verwirren hier die Versions-Zahlenangaben. Wenn du von Version größer 10.1 sprichst, nehme ich mal an, dass meine o.g. Version die 10.3.11 ist und nicht irgend eine 5.5.5


    Ich mache jetzt noch einen neuen Versuch, einen Dump zu importieren, wobei ich dann das gleiche DB-Passwort nutzen werde. Den gleichen DB-User und DB-Name wie die aus der der Dump stammt, kann ich nicht verwenden, weil User / Name einfach vom Server hochgezählt werden.


    Meine vorige Frage, ob vor dem Import Username und Datenbankname identisch sein muss mit den Angaben im zu importierenden Datensatz ist noch offen und so frage ich jetzt noch mal nach.

  • Deine Versionsangabe stammt offenbar aus der Systeminformation des Joomla. Warum dort so etwss angezeigt wird und nicht die konkrete MySQL-Version ist mir ein Rätzel. In phpMyAdmin findest Du die Versionsangabe. Es wird jedoch 10.3.11 sein.


    Zu Deiner weiter unten genannten Fejlermeldung beim Import:

    Womit genau wurde der Dump erzeugt? Was ist "mittels der GUI MySQL-Admin"?

    Meinst Du damit phpmyAdmin?

    Falls ja, achte darauf das das Anlegen der Datenbank nicht mit im Dump steht. Man muss zuerste links inder Navigationsleites die Datenbank auswählen, so das rechts im Hauptfenster die Tabellen zu sehen sind. Dann darüber den Export ausführen:

    Exportieren: https://www.fc-hosting.de/support/faq_phpmyadmin-export.php

    Importieren: https://www.fc-hosting.de/support/faq_phpmyadmin-import.php


    Wenn in Deinem Dump "CREATE DATABASE" im obenen Bereich steht, dann wurde der Dump nicht richtig erzeugt.


    Ich weiss nicht ob dies Dein Problem ist... schau einfach mal.

  • flotte

    Ich habe in PHPmyAdmin alles durchsucht, aber keine Möglichkeit gefunden, die Datenbankversion heraus zu finden!

    Dann habe ich mir eine info.php erstellt. Dort erhalte ich dann die gleiche unglaublich umfangreiche Anzeige, zu der auch Joomla in der Lage ist, wenn ich das System-Info abfrage. Allerdings steht da wenigstens klar verständlich gelistet:

    Datenbankversion: 5.5.5-10.3.11-MariaDB-log

    und

    PHP-Version: 7.3.18-1+0~20200515.59+debian9~1.gbp12fa4f


    Der Dump, den ich erstellt hatte, hat knapp 10 MB Größe. Nirgendwo fand ich darin "CREATE DATABASE" sondern immer nur CREATE TABLE.

    Inzwischen habe ich eine komplett neue Joomla-Installation erstellt. Mit der läuft SEO-Glossary ebenfalls auf Anhieb einwandfrei.


    Lui_brempt

    Ich hatte gedacht, dass der Weg über den Dump einfacher sein könnte. Dann blieben die Verzeichnisse der alten Joomla-Instalation auf dem Server gleich.

    Mit Akeeba müsste ich einen neuen Installationsordner anlegen und auch zum Ausprobieren im Server die URL auf den neuen Ordner legen.


    Ich versuch morgen noch mal den Dump in die Maria-DB zu bekommen. Wenn's dann nicht geht, kann ich immer noch die Akeeba-Lösung nutzen.