[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/