Taskfreak MySQL-Datenbank Import/Export

Eine Serverumstellung machte es notwendig die MySQL-Datenbank zu einem anderen Benutzer zu transferieren. Klingt im ersten Moment nicht nach Problemen und lässt sich über phpMyAdmin im Normalfall auch einfach erledigen.

Die Probleme begannen jedoch nach dem Import:

Zunächst waren die Umlaute nicht richtig importiert worden und statt dem „ü“ gab es nur noch Hyroglyphen. So weit nicht tragisch, jedoch hatte mit der Zeit auch die XML-Verarbeitung der PHP-Scripts damit Probleme und versagte den Dienst.

Die richtige Vorgehensweise zur Datenbank-Übernahme fasse ich nochmal kurz zusammen:

1) SQL-Dump in phpMyAdmin

phpMyAdmin starten und mittels „Exportieren“ die entsprechenden Tabellen auswählen.
Ergebnis ist ein SQL-Dump, wie das Beispiel hier zeigt:

— phpMyAdmin SQL Dump
— version 2.8.2
— Host: localhost
— Server Version: 5.0.51
— PHP-Version: 5.2.6-1+lenny10
— Datenbank: `sqldb`

— Tabellenstruktur für Tabelle `taskfreak_country`

 

CREATE TABLE `taskfreak_country` (
  `countryId` char(2) NOT NULL default “,
`name` varchar(100) NOT NULL default “,
PRIMARY KEY  (`countryId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

— Daten für Tabelle `taskfreak_country`
INSERT INTO `taskfreak_country` (`countryId`, `name`) VALUES
(‚AF‘, ‚Afghanistan‘),
(‚AL‘, ‚Albania‘),
(‚DZ‘, ‚Algeria‘),
(‚AS‘, ‚American samoa‘),
(‚AD‘, ‚Andorra‘),
(‚AO‘, ‚Angola‘),

Die Umlaute sind im Dump bereits verstümmelt, sind aber für Taskfreak in Ordnung!

2) UTF8 Charset Encoding / konvertieren

Der einfachste Weg, den SQL-Dump in das richtige Format zu bringen, um die Tabellen wieder importieren zu können, ist Notepad++ http://notepad-plus-plus.org/

Den Dump öffnen und mittels „Convert to UTF8“ auf den UTF-Zeichensatz bringen. Um das ganze per SQL-Query wieder zu importieren auf „Encode in ANSI“ umschalten und

3) Import mittels SQL-Query in phpMyAdmin

den erhaltenen Text kopieren und im SQL-Feld von phpMyAdmin einfügen.

Danach ist die Datenbank (die bereits unter Operationen auf Kollation UTF8 eingestellt sein sollte) wieder vollständig. Im Ansichts-Fenster der Tabellen von phpMyAdmin sieht man zwar noch die falsche Codierung (ANSI), jedoch liest Taskfreak die Tabellen im UTF-Codierung aus und berichtigt somit die in der Datenbank scheinbar falschen Zeichen.
Wichtig ist, dass der Import des SQL-Dumps im ANSI-Encoding kopiert wird, denn selbst wenn die Datei richtig in UTF8 konvertiert ist, gibt es nach dem Import Probleme. Leider konnte ich auch keine richtig umgewandelte UTF-8 Datei über die Importfunktion importieren, daher dieser etwas komplizierte Weg über den SQL-Befehl.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.