Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 20 von 23

Thema: Kollation der Datenbank mit phpMyAdmin überprüfen

  1. #1
    vBulletin-Germany Team Avatar von Mystics
    Registriert seit
    01.11.2001
    Alter
    30
    Beiträge
    27.236

    Kollation der Datenbank mit phpMyAdmin überprüfen

    Nach einer Aktualisierung von vBulletin könnten Datenbank-Fehlermeldungen dieser Art auftreten, v.a. bei großen Versionsänderungen (z.B. 3.7 auf 3.8 oder 3.8 auf 4.0):
    MySQL-Fehler : Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_swedish_ci,IMPLICIT) for operation '='
    In den meisten Fällen kommt das daher, dass die im Upgrade neu erstellten Datenbank-Tabellen eine andere Kollation als die vorhandenen Tabellen verwenden.

    Dies könnte in phpMyAdmin dann z.B. so aussehen:




    Neu erstellte Tabellen verwenden automatisch die Kollation, die für die Datenbank selbst eingestellt ist. Die Kollation der Datenbank sehen Sie auf der rechten Seite ganz unten, wenn Sie die Datenbank mit phpMyAdmin auswählen:





    Um den oben genannten Fehler zu verhindern, sollten Sie vor der Aktualisierung die Kollation der Datenbank anpassen.

    Die "richtige" Kollation können Sie an einer der älteren Tabellen sehen, z.B. post:




    Wählen Sie in phpMyAdmin Ihre Datenbank aus und klicken Sie oben rechts auf Operationen:




    Wählen Sie in unten die Kollation aus, die bei der Tabelle post verwendet wird und klicken Sie auf OK. In unserem Beispiel wäre das die Kollation latin1_swedish_ci.





    Hinweis: Unterschiedliche Kollationen müssen nicht zwangsläufig zu der oben genannten Fehlermeldung führen. Die Fehlermeldung tritt nur auf, wenn Felder mit unterschiedlichen Kollationen in einer Datenbankabfrage zusammen aufgerufen werden.

    ___________________________________________________________________________


    Falls Sie bereits die oben erwähnten Fehlermeldungen bekommen, müssen Sie die Kollationen nachträglich anpassen. Dies muss an drei verschiedenen Stellen durchgeführt werden: Für die Datenbank selbst, für die einzelnen Tabellen und für die Felder in den Tabellen.



    • 1.) Datenbank:

      Siehe oben.


    • 2.) Tabellen:

      Sehen Sie sich die Struktur der betroffenen Tabelle an:




      Klicken Sie oben rechts auf Operationen:




      Wählen Sie in unten die Kollation aus, die bei der Tabelle post verwendet wird und klicken Sie auf OK




    • 3.) Felder:

      Sehen Sie sich die Struktur der betroffenen Tabelle an:




      Klicken Sie bei dem jeweiligen Feld auf Ändern (Bleistift-Symbol):




      Wählen Sie in unten die Kollation aus, die bei der Tabelle post verwendet wird und klicken Sie auf OK.




      Hinweis: Sie müssen nur Felder ändern, die eine andere Kollation verwenden. Wenn ein Feld keine Kollation hat, müssen Sie nichts ändern.

  2. #2
    Benutzer
    Registriert seit
    31.07.2005
    Beiträge
    107
    Hallo, beim Umstellen von Latin auf UTF-8 bekomme ich die Fehlermeldung:

    Specified key was too long; max key length is 1000 bytes
    Das liegt am Zeichensatz, die meisten MySQL Server mit der Version 4/5 sind hier in Deutschland mit "Latin" Zeichensätzen kodiert. Der neue Server läuft wahrscheinlich auf UTF-8 und damit erhöht sich die Anzahl der Bytes pro Zeichen.

    Bei VARCHAR beträgt die maximallänge 65.532 byte, UTF-8 ist aber ein 32 Bit Zeichensatz und könnte mit 16 Bit garnicht die ganzen Zeichen speichern.

    Wie kann ich dieses Problem umgehen (Vorbereitungen für Update von vb3.8.x auf vb 4.x)?
    Geändert von MK|breaker (17.01.2010 um 15:41 Uhr)
    Marktorientierte Softwarelösungen
    www.wittesoft.de

  3. #3
    vBulletin-Germany Team Avatar von Mystics
    Registriert seit
    01.11.2001
    Alter
    30
    Beiträge
    27.236
    Haben die Tabellen denn eine unterschiedliche Kollation oder warum willst du das ändern? Womit der neue Server läuft, ist erst einmal egal.

  4. #4
    Benutzer
    Registriert seit
    31.07.2005
    Beiträge
    107
    Hallo, das Thema hat sich wohl erledigt...ich habe mir zum Zweck dieser Umstellung (Kollation) eine PHP-Datei gebaut, welche mir die Tabellen automatisch auf die von der Tabelle "vb_post" umstellt....in meiner 1. Datei sollten auch die Feld-Namen der einzelnen Tabellen umgestellt werden, deshalb kam auch der Fehler, jetzt werden nur die Tabellen-Namen / DB umgestellt, jetzt klappt es
    Geändert von MK|breaker (19.01.2010 um 13:56 Uhr)
    Marktorientierte Softwarelösungen
    www.wittesoft.de

  5. #5
    vBulletin-Germany Team Avatar von Mystics
    Registriert seit
    01.11.2001
    Alter
    30
    Beiträge
    27.236
    Evtl. funktioniert auch das noch:
    http://www.vcharset.com

  6. #6
    Profi-Benutzer Avatar von Merlin_
    Registriert seit
    16.12.2004
    Ort
    Duisburg
    Beiträge
    413
    Blog-Einträge
    1
    Hallo Mike,
    vcharset funktioniert leider nicht mehr mit der vb4. Bei mir sind nun sehr viele Tabellen und Felder auf swedish eingestellt (weiss der Teufel warum). Muss ich nun wirklich hunderte von Feldern einzeln ändern ???
    Gruss,Micha
    Das Forum für Opel Omega/Senator : www.omega-senator.de
    vBulletin 4.1, vBCMS

  7. #7
    vBulletin-Germany Team Avatar von Mystics
    Registriert seit
    01.11.2001
    Alter
    30
    Beiträge
    27.236

  8. #8
    Benutzer
    Registriert seit
    09.02.2006
    Ort
    München
    Alter
    38
    Beiträge
    58
    Hallo zusammen,

    bei mir sind die Tabellen alle schon im latin1_german2_ci Format.
    Passt das dann für eine Umstellung von VB 3.8.5 auf VB 4.x ?

    Vielen Dank

    Markus

  9. #9
    vBulletin-Germany Team Avatar von Mystics
    Registriert seit
    01.11.2001
    Alter
    30
    Beiträge
    27.236
    Wenn auch die Datenbank selbst diese Kollation hat, ja.

  10. #10
    vB-Experte Avatar von MotMann
    Registriert seit
    22.01.2006
    Ort
    Berlin
    Alter
    49
    Beiträge
    580
    Was ist denn nun praktikabler.

    latin1_german2_ci
    Oder UTF8 Unicode für Deutschland?

    Thank's

  11. #11
    Benutzer
    Registriert seit
    07.04.2008
    Beiträge
    134
    Blog-Einträge
    2
    Zitat Zitat von MotMann Beitrag anzeigen
    Was ist denn nun praktikabler.

    latin1_german2_ci
    Oder UTF8 Unicode für Deutschland?

    Thank's
    würde mich auch interessieren

    bei mir posten schon mal leute griechische schriftzeichen..
    also dann mit dem 4er-Update auch auf UFT8?

  12. #12
    vB-Experte Avatar von MotMann
    Registriert seit
    22.01.2006
    Ort
    Berlin
    Alter
    49
    Beiträge
    580
    Ja.....

  13. #13
    Fortgeschrittener Benutzer Avatar von buddyheiko
    Registriert seit
    13.04.2008
    Ort
    70565 Stuttgart
    Alter
    56
    Beiträge
    203
    Blog-Einträge
    1
    Also die Beschreibung von Mike ist einfach klasse. Die versteh sogar ich.

    Ich habe meine Datenbank nach Mike´s Beschreibung auf utf8 umgestellt. Dann alle Tabellen und danach die Felder. Allerdings habe ich jetzt noch vier bis fünf Tabellen ( von 349 ), die zwar schon utf sind, aber einzelne Felder darin noch mit Latin_german1 sind. Wenn ich diese Felder umstellen will, kommt ein Fehler von MySQL, den ich nicht verstehe. Aber im Moment funktioniert noch alles fehlerfrei..

  14. #14
    vBulletin-Germany Team Avatar von s.molinari
    Registriert seit
    01.06.2001
    Ort
    Zweibrücken
    Alter
    47
    Beiträge
    6.046
    Blog-Einträge
    4
    Hi Heiko,

    Wie in dem Thema von Mike erwähnt wird, kommt nur ein Fehler vor, wenn Felder verschiedener Kollationen in einer Abrage aufgerufen werden. Wenn vB die paar einzelnen Felder nicht mit UTF8 Felder aufruft, funktioniert alles.

    Hinweis: Unterschiedliche Kollationen müssen nicht zwangsläufig zu der oben genannten Fehlermeldung führen. Die Fehlermeldung tritt nur auf, wenn Felder mit unterschiedlichen Kollationen in einer Datenbankabfrage zusammen aufgerufen werden.
    Scott
    Professionalität ist 20% Talent und 80% Übung! Und ohne Disziplin sind die beiden wertlos.

    Wenn die Wahrheit weh tut, machst du was falsch!

    vBulletin abgekürzt heisst vB, nicht vBB! Mein Deitsch ist net perfekt. Mein Ausrett isch, ich bin Ami und lebe in de Palz.

  15. #15
    Benutzer
    Registriert seit
    15.05.2006
    Beiträge
    65
    Hallo!

    Kann es bei folgenden Einstellungen in der Datenbank zur oben genannten „Illegal mix of collations“ – Fehlermeldung kommen:
    collation_connection: utf8_general_ci
    collation_database: utf8_unicode_ci
    collation_server: utf8_unicode_ci
    In information_schema.COLLATIONS ist utf8_general_ci default gesetzt
    Alle Tabellen: utf8_unicode_ci
    Spalten: utf8_unicode_ci (meisten), utf8_bin (wenige), NULL

  16. #16
    vBulletin-Germany Team Avatar von pogo
    Registriert seit
    01.06.2001
    Ort
    Hannover
    Alter
    36
    Beiträge
    13.901
    Blog-Einträge
    5
    Es ist unwahrscheinlich, dass es zu dem Fehler kommt. Aber mit 100%er Sicherheit möchte ich das nicht sagen.
    In der Regel passiert das auch eher, wenn man einen Datenbankwechsel oder Serverwechsel vornimmt oder die MySQL Konfiguration verändert und danach neue Tabellen erstellt werden.
    Entwickler-Blogs in deutsch, Farbe und BUNT!
    Mein Wunschzettel
    Warum du keine Anhänge herunterladen kannst!
    Suchst du Hacks, Add-ons, Modifikationen, Styles, Buttons und mehr? -> Auf zu vBGo!

  17. #17
    Benutzer
    Registriert seit
    15.05.2006
    Beiträge
    65
    Zu meinem obigen Beitrag möchte ich ergänzend anmerken, dass jene wenigen utf8_bin-Tabellenspalten im Zuge der vBulletin-Installationsroutine mit utf8_bin angelegt werden.

    Ich habe nach vB-Neuinstallationen in den zugehörigen Datenbanken die Tabellenstruktur abgefragt.
    Ergebnis:
    Alle Spalten mit Data_type 'char','varchar','text','mediumtext','enum' haben die Collation utf8_unicode_ci,
    mit Ausnahme folgender Spalten mit Collation utf8_bin:

    vBulletin 3.8:
    attachment.extension (nur vB3.8, Spalte existiert in vB 4 nicht)
    attachmentpermission.extension
    attachmenttype.extension
    faq.faqname
    phrase.varname
    picture.extension (nur vB3.8, Tabelle existiert in vB 4 nicht)

    vBulletin 4:
    attachmentpermission.extension
    attachmenttype.extension
    faq.faqname
    filedata.extension (nur vB4, existiert in vB 3.8 nicht)
    phrase.varname

    Ich habe mir die create table - Anweisung der Tabelle PHRASE in den Installationsscripts angeschaut:
    Die Spalte VARNAME wird explizit mit dem Attribut BINARY angelegt und erhält dadurch die Collation utf8_bin.
    -> Die unterschiedlichen Collationen sind anscheinend (für Sortierung und Vergleiche) beabsichtigt?

  18. #18
    vBulletin-Germany Team Avatar von pogo
    Registriert seit
    01.06.2001
    Ort
    Hannover
    Alter
    36
    Beiträge
    13.901
    Blog-Einträge
    5
    Das wurde aufgrund dieses Fehlers entsprechend geändert:
    http://tracker.vbulletin.com/browse/VBIII-1425
    Entwickler-Blogs in deutsch, Farbe und BUNT!
    Mein Wunschzettel
    Warum du keine Anhänge herunterladen kannst!
    Suchst du Hacks, Add-ons, Modifikationen, Styles, Buttons und mehr? -> Auf zu vBGo!

  19. #19
    Benutzer
    Registriert seit
    15.05.2006
    Beiträge
    65
    Das heißt, das Attribut BINARY wurde in der Tabelle PHRASE für den case-sensitiven Stringvergleich eingeführt.

    Um zum Thema des Threads zurückzukommen:
    Kann man zusammenfassen, dass solange der Zeichensatz übereinstimmt (in meinem Fall utf8) die unterschiedlichee Collationen (in meinem Fall utf8_bin und utf8_unicode_ci) keinen MySQL-Fehler "Illegal mix of collations" bewirken?

  20. #20
    Benutzer
    Registriert seit
    21.02.2010
    Beiträge
    113
    Hi!

    Meine Tabelle "post" hat die Kollation: latin1_swedish_ci
    Der Rest ist ein bunter Mix aus latin1_swedish_ci und utf8_general_ci

    Installiere ich vB4.1 komplett neu, werden alle Tabellen als utf8_general_ci angelegt.
    Sollte ich mich dann trotzdem nach der Tabelle "post" richten, oder lieber alles auf utf8_general_ci umstellen?

Seite 1 von 2 12 LetzteLetzte

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Datenbank Kollation
    Von silke77 im Forum vBulletin 3.8 Fragen und Probleme
    Antworten: 4
    Letzter Beitrag: 23.10.2009, 16:30
  2. Kollation auf einmal umstellen
    Von waldbauer.com im Forum vBulletin 3.6 Fragen und Probleme
    Antworten: 14
    Letzter Beitrag: 11.07.2008, 08:30
  3. Kollation Problem
    Von GreJan im Forum vBulletin 3.7 Fragen und Probleme
    Antworten: 17
    Letzter Beitrag: 11.03.2008, 07:52
  4. Datenbank-Queries ausführen mit phpMyAdmin
    Von Mystics im Forum FAQs - Häufig gestellte Fragen
    Antworten: 0
    Letzter Beitrag: 05.04.2003, 17:43
  5. Antworten: 4
    Letzter Beitrag: 07.02.2002, 22:40

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •