[mySQL]: Umlaute werden nach Backup nicht richtig dargestellt

maceis

maceis

Aktives Mitglied
Thread Starter
Dabei seit
24.09.2003
Beiträge
16.880
Reaktionspunkte
626
hallo zusammen,

hier noch ein Problem mit Umlauten.

ich benutze folgendes Kommando, um ein Backup von meiner Online Datenbank in meine lokale Datenbank einzulesen:
mysql -uroot -p<passort> usr_webxyz_1 < db.dump
In der Datei db.dump sind alle Zeichen korrekt dargestellt.
In der Datenbank kommen aber Umlaute und das 'ß' als "komische" Sonderzeichen an.

Kann man das umgehen ?
Wenn ja, wie ?

Danke im voraus.
 
Du müsstest feststellen, ob vielleicht der Dump mit ISO-8859-1 ausgegeben wurde und nun mit Mac OS Roman (zum Beispiel) eingelesen wird oder umgekehrt. Installier Dir bei Bedarf die Developer Tools und stelle mit Hilfe von Xcode die Codierung um.
 
Die DevTolls sind installiert.
Wie ich allerdings mit XCode die Kodierung (von mySQl ?) umstelle, ist mir nicht bekannt.
Kannst Du das bitte näher erläutern ?
 
Du stellst damit die Kodierung des Dumps um, indem Du den in Xcode öffnest, dann mit dem Menü Format->File Encoding erstmal den Zeichensatz anpasst (vermutlich auf ISO-8859-1).
 
Vielen Dank, das hat geklappt.
Umgestellt habe ich auf Western (Latin 1).

Jetzt würde mich nur noch interessieren, wie man das auf der Kommandozeile machen kann und wo "File Encoding" in der Datei gespeichert ist.
 
Dazu musst Du die Konfigurationsdatei "my.cnf" anlegen, mitgeliefert werden bei der Standard-Installation bereits verschiedene Vorlagenl, die ähnlich benannt sind. Einfach mal im Verzeichnis Deiner MySQL-Installation kramen.

Dann eine solche my.cnf anlegen/modifizieren, indem Du unternhalb der Sektion
[mysqld]
default-character-set = mein-charset

anlegst. Nach solchen Änderung musst Du MySQL neu starten. Zum Beispiel per:

sudo /Library/StartUpItems/MySQL/MySQL start
(variiert je nach installierter Version)

Weitere Infos hier:

http://dev.mysql.com/doc/mysql/de/German_character_set.html
 
Zuletzt bearbeitet von einem Moderator:
Vielen Dank für die Infos.

Nur leider klappt es nicht so wie erwartet.
Ich habe folgende Beobachtungen gemacht:

1. Wenn ich nach der Methode mit XCode die Dumpdatei auf Latin1 ändere ist alles okay.
"myisamchk -dvv table.MYI" gibt mir dann u. a. "Character set: latin1 (8)" aus.

2. Wenn ich, nachdem ich mit /etc/my.conf und Server-Neustart "Server characterset: latin1" eingestellt habe, erhalte ich trotzdem die kryptischen Zeichen.
"myisamchk -dvv table.MYI" ergibt aber die selbe Ausgabe wie oben.
Auch "latin_de1" und "german1" führen nicht zum Erfolg.

Kurz gesagt: nur wenn ich mit XCode "File Encoding" ändere, werden die Sonderzeichen richtig dargestellt.

Im Moment weiss ich nicht, was ich noch versuchen kann.
 
Habe eben noch eine Beobachtung gemacht.
Bisher habe ich das Dump-file erstellt, in dem ich mit phpMyAdmin meine Onlinedatenbank exportiert und die Ausgabe in eine Textdatei kopiert hatte.

Ich kann mit aber auch mit Confixx ein tgz-komprimiertes Backup erstellen lassen.
Wenn ich das herunterlade und einspielen ist alles okay.

Das Problem muss also vermutlich mit phpMyAdmin bzw dem Umkopieren zusammenhängen (obwohl im Export die Umlaute korrekt angezeigt werden) kopfkratz
 
Zurück
Oben Unten