Strato-Probleme beim Import der alten Beiträge (WBB 2.x/MySQL 4.x --> WBB 3.x/MySQL 5.x)

  • [Beitrag ggf. bitte in die richtige Rubrik verschieben und diese Zeile löschen. Siehe auch: Beitragserstellung im Support-Forum]


    Hallo,


    Problem:
    Die alte Datenbank (MySQL-Vers. 4.x) kann nicht über den Datenimport eingelesen werden.


    Ursache[Forum-Spezifisch]:
    Die Forensoftware unterstützt keine MySQL 4.x - Datenbanken.
    Hinweis: Laut Marcel Werk soll das Problem mit dem nächstem Update erledigt sein.


    Problem [Strato-Spezifisch]:
    Laut der Strato-FAQ kann man mit Telnet einen Dump der MySQL4.x-Datenbank erstellen und danach in eine MySQL5.x zurück-dumpen können. Das ist leider aus folgendem Grund FALSCH: Über Telnet lässt sich nicht auf die 5er Datenbanken zugreifen (nur auf die 4er) und somit ist zum einen auch der "Zurück-Dump" nicht möglich. Zum anderen befinden sich in der Datenbank so genannte reservierte Wörter, die ohne weitere Behandlung (!) beim Import in die 5er Datenbank als Befehle erkannt werden und zum Fehler führen.


    Lösung:
    In meinem Fall ist die Datenbank ca. 130MB groß und daher musste ich folgenden Weg wählen:


    Mittels "phpMyAdmin"[1] lässt sich zum einen die Tabellen einzeln exportieren. Zum anderen werden hier die Feldnamen (die ansonsten versehentlich als Befehle erkannt werden) in ein spezielen Anführungszeichen (`) gesetzt so, dass ein "zurück-Dump" in eine 5er Datenbank möglich ist. Da mir nicht genau klar war, welche Tabellen erforderlich sind habe ich fast alle Tabellen exportiert. Mit Ausnahme von bb1_wordmatch und bb1_word, die mit unter für die Suche verantwortlich sind und bei mir überaus groß waren). Der Export funktioniert folgendermaßen: Klick auf die erste Tabelle --> Klick (oben) auf "Exportieren" --> Daraf achten, dass der Haken bei "Tabellen- und Feldnamen in einfachen Anführungszeichen" gesetzt ist --> unten links den Haken bei "Senden" anklicken und danach unten rechts auf OK. Dann den Speicherort festlegen und das mit jeder Tabelle einzeln wiederholen. Damit es später beim "zurückdumpen" einfacher geht und man weniger zu tippen hat kann man die Dateien auch umbenennen in "1.sql", "2.sql", ... usw.


    Wenn man nun alle Tabellen heruntergeladen hat werden diese wieder auf den FTP-Server übertragen. Bei großen Datenmengen kann es sinnwoll sein wenn diese in kelinen Gruppen und nicht komplett übertragen werden, da es ansonsten schnell zu einem Fehler/Timeout kommen kann. Die gesamten sql-Dateien müssen im "root" liegen (also nicht in einem Verzeichnis unterhalb dessen).


    Der "Zurückdump" kann wie oben schon beschrieben entgegen der Strato-FAQ NICHT mit Telnet erfolgen. Ein Zugriff funktioniert allerdings dann, wenn man mittels SSH auf den Server zugreift! Dazu bedarf es ein kleines Programm (welches auch ohne Installation funktioniert). Ich habe das Programm Putty[2] benutzt. NAchdem Putty gestsartet ist, muss man oben den Host eingeben und darunter "ssh" auswählen. Im gegesatz zu Telnet, bei dem der globale Host rdbms.strato.de ist muss man hier ssh.strato.de eingeben. Anschließend öffnet sich eine schwarze Box, die einer Dos-Box ähnlich ist. Nun muss man sich einloggen "www.wunschname.de" [Enter] --> Passwort. Ab jetzt kann man genbau so verfahren wie in der Strato-FAQ [3] bescheieben ist.


    Die einzelne Dateien müssen jetzt wieder in die Datenbank gespielt werden:


    mysql -h rdbms -uBenutzername -pXXX DBYY < datei.sql


    (Wobei Benutzername durch den Datenbank-Benutzernamen, XXX durch das Datenbank-Passwort und YY durch die Nummer der Datenbank ersetzt werden muss.)


    datei.sql muss durch den ersten der Dateinamen ersetzt werden die exportiert und hochgeladen wurden. (Also z.B. 1.sql). Nun ist es notwendig, dass man das mit jeder einzelnen Datei macht (Wenn man die beiden, die ich auch weggelassen habe weg lässt sind es 52). Um nicht die gesamte Zeile neu eingeben zu müssen reicht es, wenn man die "Feil hoch"-Taste drückt. Dann erscheint dort die zuletzt eingegebene Zeile. Ess muss lediglich der Dateiname am Ende geändert werden.


    Die Befhelszeilen müssen also in etwa so aussehen:
    mysql -h rdbms -uU123456 -pqwertz DB123456 < 1.sql
    mysql -h rdbms -uU123456 -pqwertz DB123456 < 2.sql
    mysql -h rdbms -uU123456 -pqwertz DB123456 < 3.sql
    .
    .
    .
    mysql -h rdbms -uU123456 -pqwertz DB123456 < 51.sql
    mysql -h rdbms -uU123456 -pqwertz DB123456 < 52.sql

    Je größer die Tabelle ist, desto länger kann ein Import dauern. Erst wenn wieder der "Prompt" "www.wunschname.de>" in der letzten Zeile steht, kann der nächet Befehl eingegeben werden. Bei einigen geht es quasi sofort bei anderen kann es aber auch mal ein paar Minuten dauern. --> Also nicht wundern.


    Ist das alles vollbracht können nun (endlich) die alten Daten in die neue Forensoftware eingespielt werden (Puh!). Die Strato-Hotline war übrigens keine Hilfe! Ein Anruf dort kostet nur Zeit!


    Vielleicht hilft es ja jemandem...


    Gruß Janko


    Fußnoten:
    [1]: phpMyAdmin ist eine php-basierte oberfläsche zur Verwaltung von Datenbanken. Bei Strato ist dieses Hilfmittel bereits installiert und steht im Kundenlogin zu Verfügung (--> Einstellungen --> Datenbankverwaltung --> klick auf "Verwaltung" bei der richtigen Datenbank)


    [2]: http://www.chiark.greenend.org.uk/~sgtatham/putty/


    [3]: http://www.strato-faq.de/view.php4?articleid=919

  • Man kann es auch übertreiben. Bei Strato kannst du über Telnet auch einfach eine einzige .sql benutzen. Auch wenn die 130mb groß ist.

    FSK 12 - Der Gute kriegt das Mädchen
    FSK 16 - Der Böse kriegt das Mädchen
    FSK 18 - Alle kriegen das Mädchen

  • Hallo Troublegum,
    Du scheinst meinen Beitrag nicht vollständig gelesen zu haben! Der EXPORT muss über das phpMyAdmin laufen. Ein einfacher Dump setzt die Feldnamen nicht in Anführungszeichen! Da aber die Scriptlaufzeit begrenzt ist kann man nicht eine komplette Datenbank in der genannten Größenordnung mit phpMyAdmin exportieren.


    Mit Telnet kann man (wie ich geschrieben habe) NICHT auf die 5er Datenbanken zugreifen! Nur auf die 4er. Es ist also gar kein Zugriff auf die 5er Datenbanken via Telnet möglich und somit kann ich weder dumpen noch "zurück dumpen". Der Zugriff auf die 5er Datenbanken funktioniert shellbasiert nur über ssh. Das dies bei Strato so ist konnte mir auch die Hotline nicht sagen. Das musste ich selber herausfinden...


    Du hast aber recht wenn Du sagst, dass man große Dateien importieren kann. Allerdings bekommst Du keine große Datei brauchbar aus der Datenbank heraus!
    (Zumindest habe ich keinen Weg gefunden - Du darfst mich aber gerne eines besseren belehren)


    Gruß Janko

  • Komisch. Also ich habe bei Strato schon per Telnet auf MySQL 4 als auch auf MySQL 5 Datenbanken zugegriffen. Alles wie in der FAQ beschrieben. Und mysqldump exportiert natürlich mit Feldnamen die in backticks escaped sind (vllt. hast du das ja bei dir per Option deaktiviert?).

    FSK 12 - Der Gute kriegt das Mädchen
    FSK 16 - Der Böse kriegt das Mädchen
    FSK 18 - Alle kriegen das Mädchen

  • Komisch. Also ich habe bei Strato schon per Telnet auf MySQL 4 als auch auf MySQL 5 Datenbanken zugegriffen.


    Probier es jetzt mal - es geht nicht! (Siehe Bildanhang)

    Quote

    Alles wie in der FAQ beschrieben. Und mysqldump exportiert natürlich mit Feldnamen die in backticks escaped sind


    Leider nicht. Habe extra die Datei herunter geladen und betrachtet --> definitiv nicht!

    Quote

    (vllt. hast du das ja bei dir per Option deaktiviert?).


    Wenn ich nach Strato-FAQ vorgehe dann nicht. Eigene Optionen habe ich nicht eingegeben (und kann ich auch nicht, da ich sie nicht kenne)
    Laut FAQ: http://www.strato-faq.de/view.php4?articleid=918

    Quote


    Die folgende Befehlszeile schreibt den Inhalt Ihrer Datenbank in die Datei datei.sql.
    mysqldump --add-drop-table -h rdbms -u Benutzername -pXXX DBYY > datei.sql
    (wobei Sie XXX durch Ihr Datenbankpasswort und YY durch Ihre Datenbanknummer und Benutzername durch Ihren Datenbank-Benutzernamen ersetzen müssen)
    Die Datei datei.sql wird dabei im Hauptverzeichnis Ihres Webspaces abgelegt.


    Die dadurch geschriebene Datei enthält keine backticks!


    Gruß Janko

  • erste Reaktion von Strato:

    Mal sehen was jetzt noch kommt...

  • Bin auch bei Strato, hatte aber Serverseitig nur das Port 80 Problem, hab angerufen und dann hat sich das erledigt. Ruf bei denen an, per e-mail kommt man leider nicht recht weit und dein Problem wird gleich behandelt.