dump von MySQL 4.0
Martin Hein
- datenbank
0 dedlfix
Hallo Forum,
ich versuche eine komplette Datenbank einer MySQL 4.0 von einem
Linux-Server zu dumpen, um sie in meine MySQL 4.1 (Windows-Server)
einzuspielen.
Nun habe ich eben mit PHPmyAdmin auf dem Linux-Server über
'exportieren ' mit den Defaultenstellungen einen Dump 'senden'
lassen, den lokal gespeichert und dann unter 'sql -> oder datei'
eingespielt.
Das funktioierte bis auf die tatsache, dass die Sonderzeichen
als Fragezeichen dargestellt wurden. Ich weiss, dass die
behandlung von Zeichensätzen in den beiden MySQL-Versionen
unterschiedlich ist und ich hab es auch mit einigen Versuchen
immer irgendwie hinbekommen, dass die Sonderzeichen erhalten
blieben.
Das einzige Problem ist das 'irgendwie'. Meine Frage:
Wie sorge ich dafür, dass meine neuere Version beim Import
nach 'alten Regeln' spielt ?
danke und
beste gruesse,
martin
ps.
ich weiss, dass es am besten wäre, die alte Version
upzudaten. Das ist leider nicht möglich.
echo $begrüßung;
ich versuche eine komplette Datenbank einer MySQL 4.0 von einem Linux-Server zu dumpen, um sie in meine MySQL 4.1 (Windows-Server) einzuspielen.
Das funktioierte bis auf die tatsache, dass die Sonderzeichen als Fragezeichen dargestellt wurden.
Ich weiss, dass die behandlung von Zeichensätzen in den beiden MySQL-Versionen unterschiedlich ist [...]
Ja, MySQL hat ab Version 4.1 grundlegende Änderungen am Zeichenkodierungskonzept vorgenommen. Bis 4.0 sprach der ganze Server eine Kodierung, nun kann man die Kodierung an 10 (wenn ich richtig gezählt habe) verschiedenartigen Stellen individuell einstellen.
Wie sorge ich dafür, dass meine neuere Version beim Import nach 'alten Regeln' spielt ?
Indem du die Default-Zeichenkodierung auf latin1 umschreibst. Doch das ist nicht anzuraten. Lass stattdessen die Default-Kodierung auf UTF-8 stehen, so wie es deiner Fehlerbeschreibung nach zu urteilen der Fall ist. Gib beim Import an, dass die Daten in Latin1 vorliegen.
Wenn du Zweifel hast, in welcher Kodierung deine Daten wirklich vorliegen, öffne die Datei in einem Browser und stelle über Ansicht -> (Zeichen-)Kodierung UTF-8 und ISO-8859-1 (entspricht im Wesentlichen Latin1) ein (das sind die beiden hierzulande relevanten Kodierungen). Wenn die Umlaute richtig angezeigt werden, ist die Datei entsprechend kodiert.
Welche Kodierung für die Felder eingestellt ist, ist für den korrekten Import nicht so relevant. MySQL nimmt hier gegebenenfalls selbst eine Umkodierung vor, wenn die Import-Kodierungsangabe nicht mit der Feldkodierung übereinstimmt. Vorausstzung ist natürlich, dass mit der jeweiligen Zielkodierung die Zeichen der Quellkodierung überhaupt darstellbar sind.
Ich weiss, dass die behandlung von Zeichensätzen in den beiden MySQL-Versionen unterschiedlich ist und ich hab es auch mit einigen Versuchen immer irgendwie hinbekommen, dass die Sonderzeichen erhalten blieben.
Es ist keine schlechte Idee, das Kapitel Character Set Support anzuschauen, besonders auch den einleitenden Text des Kapitels, sonst stehst du nach dem Import gleich wieder vor dem nächsten Problem, wenn du in deinen Anwendungen SET NAMES vergisst.
echo "$verabschiedung $name";
Moin,
ich musste das jetzt 5 mal nacheinander machen und habe einen
Weg gefunden, wie mir meine Sonderzeichen erhalten bleiben.
Exakt so, wie du beschrieben hast, geht's:
Indem du die Default-Zeichenkodierung auf latin1 umschreibst. Doch das ist nicht anzuraten. Lass stattdessen die Default-Kodierung auf UTF-8 stehen, so wie es deiner Fehlerbeschreibung nach zu urteilen der Fall ist. Gib beim Import an, dass die Daten in Latin1 vorliegen.
Danke für den Tipp und
beste gruesse,
martin