| Author |
Message |
baserider
uses MSD regulary

Joined: 27 Aug 2009
Posts: 15

|
Posted:
2010-08-07, 10:58 Änderung der Kollation einer Datenbank |
  |
Hallo,
bei meinem Hoster habe ich über das Admininterface eine neue Datenbank erstellt. Nachträglich habe ich im PHPmyAdmin die Kollation für diese Datenbank auf utf-8_unicode umgestellt, da es auf latin1 stand.
Meine Frage, kann ich auch im mysqldumper diese Einstellung ändern? Konnte leider nichts entsprechendes finden
|
|
  |
 |
Anzeigen
|
Posted:
Anzeigen |
 |
|
| |
 |
DSB
Developer


Age: 41
Joined: 30 Apr 2004
Posts: 16049
Location: Reichenberg bei Würzburg

|
Posted:
2010-08-07, 11:24 (No subject) |
  |
Wenn Du im Dumper eine neue DB anlegst, kannst Du den Standardzeichensatz wählen.
Ein fertiger Button, um das nachträglich zu ändern, ist momentan noch nicht vorhanden. Du kannst das aber per Query im SQLBrowser regeln.
_________________ 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.
|
|
    |
 |
baserider
uses MSD regulary

Joined: 27 Aug 2009
Posts: 15

|
Posted:
2010-08-07, 11:39 (No subject) |
  |
Jetzt habe ich es auch gesehen, wenn man über SQl-Browser geht und dann oben auf Tools. Dort kann man ja eine ganz neue Datenbank anlegen und den Zeichensatz auswählen.
Wird die Datenbank dann mit utf-8_unicode_ci oder utf-8_general_ci angelegt bzw. was ist eigenltich der Unterschied zw. den beiden Zeichensätzen?
|
|
  |
 |
Jens_K
Moderator

Age: 37
Joined: 04 Sep 2007
Posts: 1707
Location: Nähe Bielefeld

|
Posted:
2010-08-07, 11:42 (No subject) |
  |
|
   |
 |
DSB
Developer


Age: 41
Joined: 30 Apr 2004
Posts: 16049
Location: Reichenberg bei Würzburg

|
Posted:
2010-08-07, 11:50 (No subject) |
  |
Dank PhpMyAdmin verwechselst Du hier die beiden Begriffe "Zeichensatz" und "Sortierung".
Der Zeichensatz (Charset) ist z.B. utf-8 oder latin1.
Die Sortierungsvereinbarung (Collation) ist z.b. ut8_general_ci" oder latin1_general_cs" und muss natürlich zum Zeichensatz der DB passen. ci steht für "case insensitive" (unabhängig von Groß-/Kleinschreibung) und cs für "case sensitive" (Groß- und Kleinbuchstaben werden differenziert). Im Thread "Die Umlautproblematik" habe ich das einmal ausführlicher beleuchet:
Quote: Um an dieser Stelle direkt mit einem weiteren, weit verbreiteten Irrglauben aufzuräumen:
die Collation (Kollation=Sortierreihenfolge) wirkt sich in keinster Weise beim Einspielen von Daten aus.
Lediglich beim Auslesen der Datenbank durch Queries mit "ORDER BY"-Klausel wird so festgelegt, nach welchen Kriterien sortiert werden soll. Siehe offizielle MySQL-Dokumentation: http://dev.mysql.com/doc/refman/5.1/de/charset-we-sets.html
Das war zu theoretisch?
Ok, hier ein Beispiel:
Gehen wir davon aus, dass wir 3 Datensätze in einer Tabelle haben:
ID Name
1 Zapp, Frank
2 Zäppel, Ernst
3 Zander, Bernd
und uns die Liste der Datensätze mittels 'SELECT * FROM `tabelle` ORDER BY `Name`' zurückgeben lassen.
Rückgabe bei Sortierung (Collation) latin1_german1_ci (Wörterbuchsortierung - Umlaute werden alphabetisch einsortiert):
3 Zander, Bernd
1 Zappa, Frank
2 Zäppel, Ernst
Rückgabe bei Sortierung (Collation) latin1_german2_ci (Telefonbuchsortierung - Umlaute stehen oben):
2 Zäppel, Ernst
3 Zander, Bernd
1 Zappa, Frank
Du siehst, dass sich die Daten über die Collation (Sortierreihenfolge) nach verschiedenen landesspezifischen Sortierkriterien sortieren lassen.
Bei PhpMyAdmin gibt es einen Übersetzungsfehler: es wird "Zeichensatz" an einigen Stellen mit "Kollation" übersetzt, was falsch ist und genau zu den Verwirrungen führt, die Du gerade hast.
Upps, Jens war schneller.
_________________ 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.
|
|
    |
 |
baserider
uses MSD regulary

Joined: 27 Aug 2009
Posts: 15

|
Posted:
2010-08-07, 12:05 (No subject) |
  |
Danke, das hatte ich jetzt gerade tatsächlich durcheinandergeworfen, bzw. wa mir der Unterschied so nicht bewusst.
Ich habe gerade per mysqldumper auch die DB angelegt und dort gibts ja auch etxra ein Feld Zeichensatz und darunter Sortierung.
Zeichensatz ist nun utf-8 und utf-8_general_ci habe ich akls Sortierung angegeben.
Irgendwie ist das im phpmyadmin alles etwas vermischt. Da finde ich das nach den Erklärungen im mysqldumper viel besser mit der Trennung :-)
Danke für die Hilfe.
|
|
  |
 |
DSB
Developer


Age: 41
Joined: 30 Apr 2004
Posts: 16049
Location: Reichenberg bei Würzburg

|
Posted:
2010-08-07, 12:11 (No subject) |
  |
« baserider » wrote: Da finde ich das nach den Erklärungen im mysqldumper viel besser mit der Trennung :-)
Danke fürs positive Feedback. Genau das war auch unsere Absicht, als wir das so aufgebaut haben.
_________________ 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.
|
|
    |
 |
baserider
uses MSD regulary

Joined: 27 Aug 2009
Posts: 15

|
Posted:
2010-08-07, 12:30 (No subject) |
  |
« DSB » wrote:
Der Zeichensatz (Charset) ist z.B. utf-8 oder latin1.
Die Sortierungsvereinbarung (Collation) ist z.b. ut8_general_ci" oder latin1_general_cs" und muss natürlich zum Zeichensatz der DB passen.
Dann muss ich also die Sortierung ändern, da als Zeichensatz utf-8 angegeben ist aber alle Tabellen eine Kollation latin_general_ci haben.
Reicht es denn aus wenn ich das einfach in der Datenbank umstelle bzw. den Tabellen oder muss ich den Dump komplett neu einspielen und schon die sql-Datei im Editor mit utf-8 anlegen?
|
|
  |
 |
DSB
Developer


Age: 41
Joined: 30 Apr 2004
Posts: 16049
Location: Reichenberg bei Würzburg

|
Posted:
2010-08-07, 12:39 (No subject) |
  |
Die Standardsortierung kannst Du für jede Tabelle und/oder jede Spalte jederzeit ändern. Dies ändert nichts an den Daten in der DB. Ein erneutes Einspielen des Backups ist nicht nötig.
Aber warum willst Du das überhaupt ändern?
Weißt Du genau, was Du da tust und warum - oder hat Dir das jemand in einem Thread empfohlen?
_________________ 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.
|
|
    |
 |
baserider
uses MSD regulary

Joined: 27 Aug 2009
Posts: 15

|
Posted:
2010-08-07, 12:51 (No subject) |
  |
Ich wollte es ändern, weil ja der Zeichensatz utf-8 ist aber meine Sortierung latin_general_ci. Du meintest ja auch, es muss zusammenpassen. Oder habe ich da was falsch verstanden?
|
|
  |
 |
DSB
Developer


Age: 41
Joined: 30 Apr 2004
Posts: 16049
Location: Reichenberg bei Würzburg

|
Posted:
2010-08-07, 12:53 (No subject) |
  |
Nein, dann ist das richtig.
_________________ 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.
|
|
    |
 |
baserider
uses MSD regulary

Joined: 27 Aug 2009
Posts: 15

|
Posted:
2010-08-07, 12:59 (No subject) |
  |
Ok, danke für deine Hilfe :-) Hat mich weitergebracht und der Dumper is ja auch ein cooles Tool.
|
|
  |
 |
DSB
Developer


Age: 41
Joined: 30 Apr 2004
Posts: 16049
Location: Reichenberg bei Würzburg

|
Posted:
2010-08-07, 13:06 (No subject) |
  |
Bitte sehr.
Weiterhin viel Erfolg.
_________________ 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.
|
|
    |
 |
|
|