MySQLDumper-Board Forum Index Follow me on Twitter

Portal  •   Forum  •  Downloads  •  Profile  •  Search   •  Register  •  Log in to check your private messages  •  Log in  •  


 Frage zum Artikel "Die Umlautproblematik ..."

Post new topicReply to topic
Author Message
rwhs
knows MySQLDumper
knows MySQLDumper





Joined: 17 Jun 2010
Posts: 4


germany.gif

PostPosted: 2010-06-17, 03:17    Frage zum Artikel "Die Umlautproblematik ..." Reply with quoteBack to top

Hallo,
zuerst herzlichen Dank für den Artikel, hilfreich war für mich vor allem die Klarstellung, dass der Zeichensatz, in dem die Daten in der Datenbank gespeichert werden, festliegt und dass zum angegebenen Zeichensatz nur die Anpassung bei der Ein- und Ausgabe erfolgt. Ich bedaure, dass ich erst jetzt auf den Artikel gestoßen bin.

Meine Frage betrifft die Collation: Ist es richtig, dass Zeichensatz und Collation zusammenpassen müssen, also dass z.B die Collation latin1 swedish_ci nur in Verbindung mit dem Zeichensatz latin1 gewählt werden kann und nicht sinnvoll ist bei dem Zeichensatz utf-8?

Vielen Dank im Voraus

rwhs

OfflineView user's profileSend private message    
Anzeigen











Posted:    Anzeigen Back to top


    
DSB
Developer
Developer




Age: 46
Joined: 30 Apr 2004
Posts: 17330
Location: Beckum


germany.gif

PostPosted: 2010-06-17, 08:24    (No subject) Reply with quoteBack to top

Ja, das ist richtig und auch logisch.

In den Sortierregeln, die man über die Collation auswählt, sind Wertigkeiten und damit Reihenfolgen der Zeichen des jeweiligen Zeichensatzes geregelt. In der Collation latin1_swedish_ci sind also die Wertigkeiten der Zeichen im latin1-Zeichensatz zueinander geregelt.

In einer UTF8-Tabelle können aber auch Zeichen vorkommen, die in latin1 nicht vorhanden sind. Wie soll MySQL nun diese Zeichen in der Wertigkeit einordnen? Davor, dahinter, mittendrin?
Das ist nicht definiert und geht deshalb nicht.

Stell Dir vor, Du hättest gerade erst zählen gelernt und kennst jetzt die Reihenfolge der Zahlen 1 bis 10. Nun sollst Du die Zahl 37 dort einsortiern, die Du aber nicht kennst. Jetzt weißt Du nicht, ob 37 vor die 1 kommt oder nach der 6 einzusortieren ist.
Genau so geht es MySQL. Wink

Die Collation muss also zum jeweiligen Zeichensatz der Spalte passen, damit MySQL für jedes mögliche vorkommende Zeichen weiß, wo es hingehört.

_________________
Gruß / Greetings, DSB

Teigwaren heißen Teigwaren, weil sie Teig waren.
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.

OfflineView user's profileSend private messageSend e-mailVisit poster's website    
rwhs
knows MySQLDumper
knows MySQLDumper





Joined: 17 Jun 2010
Posts: 4


germany.gif

PostPosted: 2010-06-17, 17:13    (No subject) Reply with quoteBack to top

Hallo DSB,

vielen Dank für die schnelle und mir sehr einleuchtende Antwort.

Ich habe den Eindruck, dass manche DB-Hilfsprogramme den Zeichensatz indirekt über die Collation einstellbar machen.

Das weit verbreitete und von mir viel verwendete phpMyAdmin trägt (trug)auch zu meiner Verwirrung bei: noch in der neuesten Version stelle ich bei Import und Export den Zeichensatz ein (das leuchtet mir ein, es ist jeweils aus einem Listenfeld ein Zeichensatz auszuwählen), beim Anlegen einer neuen Datenbank kann ich eine Grundeistellung für die Collation der Datenbank wählen (Listenfeld mit Collationen, verstehe ich) und den Zeichensatz der MySQL-Verbindung (mir nicht verständlich: auch aus einem Listenfeld mit Collationen, und nicht Zeichensätzen). Anscheinend ist bei der MySQL-Verbindung im Gegensatz zum Im- und Export von DB-Daten nicht nur der Zeichensatz, sondern auch die Collation von Bedeutung. (Das Listenfeld ist auch mit "Zeichensatz/Kollation der MySQL-Verbindung" beschriftet.

Worin liegt die Bedeutung der Collation bei der Verbindung? Gibt es einen Befehl, mit dem die MySQL-Variable "collation connection" geändert werden kann, um beim Abfrageergebnis die Sortierung zu ändern?

Vielen Dank im Voraus und viele Grüße
rwhs

OfflineView user's profileSend private message    
DSB
Developer
Developer




Age: 46
Joined: 30 Apr 2004
Posts: 17330
Location: Beckum


germany.gif

PostPosted: 2010-06-17, 17:22    (No subject) Reply with quoteBack to top

Quote:
Ich habe den Eindruck, dass manche DB-Hilfsprogramme den Zeichensatz indirekt über die Collation einstellbar machen.

Ja, schau Dir die ALTER TABLE-Befehle an, die PhpMyAdmin generiert wenn Du die Collation einer Spalte änderst. Er ändert gleichzeitig und ohne Ankündigung auch den Zeichensatz.

Da das ungewollte Nebeneffekte haben kann, macht MySQLDumper das bewusst nicht.

Genau durch dieses Verhalten von PhpMyAdmin sind um den Begriff "Collation" viele Mißverständnisse entstanden, weil PMA-Anwender die Collation mit dem Zeichensatz gleichsetzen, was aber nicht korrekt ist. Deshalb habe ich im Artikel auch auf die Definition von MySQL verlinkt.

Welche Bedeutung die Collation Connection hat, habe ich in dem Artikel erklärt. MySQL liefert die Ergebnisse in diesem Zeichensatz an den anfragenden Client aus. Setzen kannst Du das mit "SET NAMES".

_________________
Gruß / Greetings, DSB

Teigwaren heißen Teigwaren, weil sie Teig waren.
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.

OfflineView user's profileSend private messageSend e-mailVisit poster's website    
rwhs
knows MySQLDumper
knows MySQLDumper





Joined: 17 Jun 2010
Posts: 4


germany.gif

PostPosted: 2010-06-17, 19:57    (No subject) Reply with quoteBack to top

Hallo DSB,

nochmals Danke.
Ich bin schon wieder irritiert, nach dem Artikel dachte ich, mit SET NAMES wird "character set connection" und nicht "collation connection" gesetzt. ???

Gruß rwhs

OfflineView user's profileSend private message    
DSB
Developer
Developer




Age: 46
Joined: 30 Apr 2004
Posts: 17330
Location: Beckum


germany.gif

PostPosted: 2010-06-17, 21:01    (No subject) Reply with quoteBack to top

Quote:
Ich bin schon wieder irritiert, nach dem Artikel dachte ich, mit SET NAMES wird "character set connection" und nicht "collation connection" gesetzt. ???


Nicht nur. Wink
Aus oben erklärtem Grund verhält sich MySQL hier logisch und durchschaubar (wenn man die Zusammenhänge versteht).
Mit dem Setzen des Charsets setzt Du gleichzeitig auch die Standard-Kollation für diesen Zeichensatz, damit Sortieroperationen mittels ORDER BY-Klausel eben stringent funktionieren.
Siehe:
http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html

Dort siehst Du, dass SET NAMES eigentlich ein Kürzel für mehrere Kommandos ist.

Wenn mit SET NAMES ein Zeichensatz gewählt wird, dann wird dazu auch automatisch eine passende Standard-Collation eingestellt.
Daraus kann man also rückschließen: wenn die Collation Connection auf z.B. utf8_general_ci gestellt ist, dann muss der Zeichensatz der geöfffneten Verbindung zwangsläufig utf8 sein. Alles andere macht keinen Sinn.

Natürlich kann man davon unabhängig im Query selbst eine anderen Kollation von MySQL fordern oder dies für die Dauer der Verbindung per
SET NAMES 'charset_name' COLLATE 'collation_name'
selbst beeinflussen.

P.S.:
Ich benutze das Wort Collation oder Kollation hier in dem Sinn, wie es auch von MySQL gemeint ist - nämlich ausschließlich als Sortierungsvereinbarung! Nicht in dem Sinne, wie es einem das GUI von PhpMyAdmin suggeriert.

_________________
Gruß / Greetings, DSB

Teigwaren heißen Teigwaren, weil sie Teig waren.
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.

OfflineView user's profileSend private messageSend e-mailVisit poster's website    
rwhs
knows MySQLDumper
knows MySQLDumper





Joined: 17 Jun 2010
Posts: 4


germany.gif

PostPosted: 2010-06-17, 23:58    (No subject) Reply with quoteBack to top

Halle DSB,
ein letztes Mal danke, ich glaube, jetzt habe ich es gerafft.

Frohes Schaffen und viele Grüße
rwhs

OfflineView user's profileSend private message    
Andyman
Donator
Donator





Joined: 30 Jan 2010
Posts: 7


germany.gif

PostPosted: 2010-10-22, 16:12    (No subject) Reply with quoteBack to top

Vielen Dank f.d. vielen Erklaerungen zur Umlautproblematik. Leider ueberfordert mich das ein wenig. Ich habe folgendes Problem (bei 1+1). Habe erfolgreich mit dem Dumper eine MySQL 4 in latin1 gesichert. Das ganze dann erfolgreich per Dumper in eine jungfraeuliche MySQL 5 umgezogen (Joomla CMS).

Wie kriege ich die Umlaute wieder korrigiert, die im Browser nun kaputt sind? Gibt es da nicht, auch fuer mich relativ "SQL-unbedarften" eine Loesung?? Tausend Dank!

OfflineView user's profileSend private message    
Jens_K
Moderator
Moderator




Age: 42
Joined: 04 Sep 2007
Posts: 2223
Location: Nähe Bielefeld


germany.gif

PostPosted: 2010-10-22, 16:28    (No subject) Reply with quoteBack to top

Mit welcher Version des Dumpers arbeitest Du?
_________________
It's like math-camp all over again ... not ... that i've ever been to math-camp!
mein Blog

OfflineView user's profileSend private messageVisit poster's website    
Andyman
Donator
Donator





Joined: 30 Jan 2010
Posts: 7


germany.gif

PostPosted: 2010-10-22, 16:31    (No subject) Reply with quoteBack to top

1.24

Ich habe im php Admin nochmal nachgeschaut. Also in der neuen 5 SQL DB habe ich den Zeichensatz utf-8 Unicode stehen. Bei Kollation steht utf-8_general_ci.

Wenn ich dann die Tabellen sehe, dann steht da aber latin1_german2....

OfflineView user's profileSend private message    
DSB
Developer
Developer




Age: 46
Joined: 30 Apr 2004
Posts: 17330
Location: Beckum


germany.gif

PostPosted: 2010-10-22, 17:56    (No subject) Reply with quoteBack to top

« Andyman » wrote:
Wie kriege ich die Umlaute wieder korrigiert, die im Browser nun kaputt sind? Gibt es da nicht, auch fuer mich relativ "SQL-unbedarften" eine Loesung?? Tausend Dank!

In der Kette von notwendigen Abhängigkeiten ist die Db nur eine der potentiellen Fehlerquellen. Zu Analysieren, wo genau es nun hakt, ist für Außenstehende ohne vollständigen Zugriff auf Webspace und DB nicht wirklich möglich.
Dennoch sind 2 Artikel in dem Thread verlinkt, die Dir so viel Hilfe bieten wie es möglich ist. Lies Dir diese Artikel ebenfalls durch. Einfacher und vollständiger kann man den Zusammenhang nicht darstellen (zumindest kann ich es nicht Wink).
Wenn Du damit immer noch nicht zurecht kommst, dann musst Du einen Dienstleister damit beauftragen. der sich damit auskennt.
Eine "Klick mich und repariere mir alles, ohne dass ich wissen muss, was wann wie wo passiert ist"-Lösung gibt es aufgrund der zahlreichen Stolperfallen nicht.

Als erste solltest Du also mal prüfen, ob das Problem überhaupt in der DB liegt. Schau Dir Datensätze im SQLBrowser des Dumpers an, die auf der Webseite falsch dargestellt werden. Werden sie im SQLBrowser korrekt dargestellt, dann ist die DB gar nicht die Ursache sondern andere Einstellungen. Mehr dazu findest Du in den erwähnten Artikeln.

_________________
Gruß / Greetings, DSB

Teigwaren heißen Teigwaren, weil sie Teig waren.
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.

OfflineView user's profileSend private messageSend e-mailVisit poster's website    
Andyman
Donator
Donator





Joined: 30 Jan 2010
Posts: 7


germany.gif

PostPosted: 2010-10-23, 11:47    (No subject) Reply with quoteBack to top

Die Artikel habe ich mehrfach gelesen, einiges auch verstanden:-)
Ich versuche mich nun schrittweise heranzutasten. Die Umlautproblematik ist im SQL Browser sichtbar, also ein Datenbankproblem. Die alte MySQL war eine 4.0-Version, also problembehaftet. Mit dem Dumper habe ich auf latin1 das Backup gemacht. Der neue MySQL 5 erwartet utf-8 Codierungen wie im Artikel beschrieben.

Ich habe den Dump in Notepad++ geoeffnet, dort stehen oben "-- Status:114:201823:MP_0:db27xxxxxxx:php:1.24::4.0.27-max-log:1::latin1:EXTINFO". Dann habe ich im Editor die Ansicht auf utf-8 ohne BOM eingestellt, das ganze abgespeichert und per Dumper neu eingespielt. Problem bleibt.

Muss ich die Statuszeile noch aendern?

OfflineView user's profileSend private message    
DSB
Developer
Developer




Age: 46
Joined: 30 Apr 2004
Posts: 17330
Location: Beckum


germany.gif

PostPosted: 2010-10-23, 12:13    (No subject) Reply with quoteBack to top

Ja. Das latin1 muss natürlich gegen utf8 getauscht werden wenn die Kodierung geändert wird. Unter dem Block ist auch noch ein SET NAMES-Query, der auch angepasst oder gelöscht werden muss.
_________________
Gruß / Greetings, DSB

Teigwaren heißen Teigwaren, weil sie Teig waren.
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.

OfflineView user's profileSend private messageSend e-mailVisit poster's website    
Andyman
Donator
Donator





Joined: 30 Jan 2010
Posts: 7


germany.gif

PostPosted: 2010-10-23, 12:18    (No subject) Reply with quoteBack to top

Bingo! Das war die Loesung. Vielleicht kannste das in die Anltg. noch mit aufnehmen: Oben Statuszeile aendern und den Set Names-Query ebenfalls aendern, das hat bei mir funktioniert. Danke.
OfflineView user's profileSend private message    
DSB
Developer
Developer




Age: 46
Joined: 30 Apr 2004
Posts: 17330
Location: Beckum


germany.gif

PostPosted: 2010-10-23, 12:26    (No subject) Reply with quoteBack to top

Das ist keine Anleitung, sondern eine Erklärung der Zusammenhänge.
_________________
Gruß / Greetings, DSB

Teigwaren heißen Teigwaren, weil sie Teig waren.
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.

OfflineView user's profileSend private messageSend e-mailVisit poster's website    
Display posts from previous:      
Post new topicReply to topic


 Jump to:   


Show permissions
Similar topics
Topic Author Forum Replies Posted
No new posts Funktioniert crondump.pl auch mit &qu... sturdy Allgemeine Fragen zu MySQLDumper 5 2016-06-07, 00:21 View latest post
No new posts Perl-Cronjob: doppeltes "Finishe... felix000 Fehler / Probleme 7 2016-01-10, 21:14 View latest post
No new posts getting http 500 error after clicking... tumula_srinu Errors and questions 1 2015-09-21, 09:32 View latest post
No new posts Backup starten mit Meldung "No d... sturdy Fehler / Probleme 2 2015-07-13, 09:54 View latest post
No new posts mysqldumper zeigt auf webspace "... zar1989 Fehler / Probleme 3 2015-04-15, 22:07 View latest post

 
CrackerTracker © 2004 - 2017 CBACK.de

Powered by Orion based on phpBB © 2001, 2002 phpBB Group
CBACK Orion Style based on FI Theme
All times are GMT + 2 Hours

phpBB SEO