DarkWolfCave
wordpress

WordPress - Fix Illegal mix of collations

WordPress - Fix Illegal mix of collations - wordpress Tutorial auf DarkWolfCave
DarkWolf im Support KI-Bild Generiert mit Gemini

WordPress - Fix Illegal mix of collations

Ich habe bei einem meiner Projekte letztens durch Zufall im Log einen Fehler gesehen, welchen ich gerne beheben wollte. Dort gab es einen Eintrag mit “WordPress-Datenbank-Fehler Illegal mix of collations” und den betroffenen Datenbank-Kollationen.Bis zu diesem Zeitpunkt war es mir nicht bewusst, dass ein solcher Fehler auftreten könnte. Scheinbar kann dieses bei Umzügen der Datenbanken bzw. Hoster passieren.In diesem Artikel zeige ich dir, wie du das Problem beheben kannst.

DarkWolfCave.de

WordPress - Illegal mix of collations Fehler beheben

Falls du dich fragst, was Kollationen genau sind und wieso diese einen Fehler erzeugen können, dann kann ich hier vielleicht ein wenig Licht ins Dunkle bringen, ohne zu sehr in die Details von Datenbanken abzutauchen.

Fangen wir ganz vorn an. Der genannte Fehler im ErrorLog mit: WordPress-Datenbank-Fehler Illegal mix of collations besagt, dass unter anderem zwei Tabellen miteinander verglichen werden sollten, diese aber eine jeweils andere Kollation benutzen. Warum gibt es dabei eine Fehlermeldung?

Das Problem beim Vergleichen von Tabellen mit unterschiedlichen Kollationen liegt darin, dass die Art und Weise, wie Zeichen in verschiedenen Kollationen interpretiert werden, unterschiedlich sein kann. Die Kollation beeinflusst die Reihenfolge von Zeichen, Groß- und Kleinschreibung, die Berücksichtigung von Akzenten und Sonderzeichen und andere Aspekte.

Wenn du versuchst, Daten zwischen Tabellen mit unterschiedlichen Kollationen zu vergleichen, könnten Unstimmigkeiten auftreten, da die Datenbank möglicherweise nicht in der Lage ist, korrekte Vergleiche durchzuführen. Zum Beispiel könnte die gleiche Zeichenfolge in einer Kollation als gleich betrachtet werden, während sie in einer anderen Kollation als unterschiedlich betrachtet wird.

Das kann zu inkonsistenten Ergebnissen führen und Probleme bei Abfragen, Sortierungen und Vergleichen verursachen. Daher ist es in der Regel eine bewährte Praxis, sicherzustellen, dass Tabellen, die miteinander verglichen oder verknüpft werden sollen, die gleiche Kollation haben.

Illegal mix of collations - Darkwolfcave.de

Wir sollten uns daher um dieses Problem kümmern und dieses beheben.

Bevor wir loslegen, noch ein paar grundsätzliche Dinge zu diesem Thema. Die Vorgehensweisen, wie du Änderungen an deiner Datenbank durchführen kannst oder musst, können recht unterschiedlich sein. Hier kommt es unter anderem darauf an, welche Datenbank du benutzt (MySQL, MariaDB usw.) und ob du es über eine GUI (phpMyAdmin) oder CLI (also Terminal-Befehle) durchführst.

Illegal mix of collations - Genutzte Kollation(en) auf Datenbank anzeigen lassen

Ich werde hier jetzt phpMyAdmin benutzen, da es für die Meisten am einfachsten und bekanntesten sein wird. Zuerst würde ich gerne wissen, wie viele unterschiedliche Kollationen in meiner Datenbank vorhanden sind. Der Schritt ist nicht wirklich notwendig, aber interessant. Dafür führe ich folgenden SQL-Befehl aus (bei TABLE_SCHEMA = ‘NAME-DEINER-DATENBANK’ musst du natürlich den Namen deiner Datenbank eintragen) :

Dafür klickst du in phpMyAdmin einfach auf SQL:

Illegal mix of collations - SQL für Kollationen

SELECT table_name, table_collation
FROM information_schema.tables
WHERE TABLE_SCHEMA = 'NAME-DEINER-DATENBANK';

Hier werden dir dann alle Tabellen(-Namen) und deren Kollation angezeigt. Bei vielen Tabellen kann es schnell unübersichtlich werden. Möchtest du einfach nur die Anzahl und die verschiedenen Kollationen sehen, gruppieren wir unsere Ausgabe einfach ein wenig:

SELECT table_collation, COUNT(*) AS table_count
FROM information_schema.tables
WHERE table_schema = 'NAME-DEINER-DATENBANK'
GROUP BY table_collation;

In meinem Fall sah es dann so aus:

Illegal mix of collations - Unterschiedliche Kollationen

Illegal mix of collations - Die Standard Kollation auf der Datenbank ändern

Es gibt also 2 unterschiedliche Kollationen in dieser Datenbank. Beginnen wir damit, eine Kollation als default einzurichten. Jede weitere, neu erstellte Tabelle würde dann diese Kollation erhalten. Aber welche sollen wir nehmen? Ein kurzer Blick ins Internet und ich musste feststellen, die Frage scheint nicht oft gestellt zu werden.

Also habe ich mir mal den Sourcecode von WordPress angeschaut, um zu sehen, was diese dort verwenden würden. Nachsehen kannst du das auch gerne selbst in GitHub :

Illegal mix of collations - WordPress GitHub

Es werden diverse Abfragen gestartet, ob eine bestimmte Kollation auf der Datenbank vorhanden/verfügbar ist. Am Ende wird auf die utf8mb4_unicode_520_ci verwiesen. Sollte diese also verfügbar sein, wird empfohlen diese zu nutzen. Mit dem Wissen schauen wir uns jetzt phpMyAdmin an. Einfach oben links auf das Haus und dann auf den Kollation-Namen klicken. Aus dem Drop-Down-Feld nehmen wir dann den utf8mb4_unicode_520_ci Eintrag:

Illegal mix of collations - phpMyAdmin default Kollation

Illegal mix of collations - Änderung der Kollation in den Tabellen

Du hast weitere Fragen oder benötigst Hilfe? Gerne versuche ich im Rahmen meiner Möglichkeiten dich zu unterstützen. Dafür kannst du hier die Kommentar-Sektion (nicht vergessen Antworten zu abonnieren) nutzen oder du schaust auf meinem Discord-Kanal vorbei.

FAQ - Frequently Asked Questions DarkWolfCave
DarkWolf hilft bei FAQs

Häufig gestellte Fragen

Was bedeutet der Fehler "Illegal mix of collations" in WordPress-Datenbanken?
Dieser Fehler tritt auf, wenn zwei Tabellen in der WordPress-Datenbank mit unterschiedlichen Kollationen miteinander verglichen werden sollen. Die Kollation einer Datenbank bestimmt, wie Zeichen interpretiert und sortiert werden. Wenn Tabellen unterschiedliche Kollationen haben, kann dies zu Inkonsistenzen und Fehlern führen.
Wie kann ich herausfinden, welche Kollationen in meiner WordPress-Datenbank verwendet werden?
Du kannst SQL-Abfragen in Tools, wie phpMyAdmin verwenden, um die Kollationen der Tabellen in deiner Datenbank anzuzeigen. Du kannst unter anderem den folgenden Befehl verwenden:
Welche Kollation sollte ich für meine WordPress-Datenbank verwenden?
Es wird empfohlen, die Kollation utf8mb4_unicode_520_ci zu verwenden, da diese von WordPress unterstützt wird und eine gute Unicode-Unterstützung bietet.
Gibt es Risiken bei der Änderung der Kollation in meiner WordPress-Datenbank?
Ja, Änderungen an der Kollation können potenziell zu Datenverlust oder Inkonsistenzen führen. Daher ist es wichtig, vor dem Durchführen von Änderungen ein Backup deiner Datenbank zu erstellen und Änderungen sorgfältig zu planen.
Kannst du mir alles detailliert und komplett persönlich erklären?
Natürlich! Über eine entsprechende Patreon-Mitgliedschaft biete ich dir einen exklusiven und persönlichen Zugang in Discord an. Hier stehe ich dir dann für deine Fragen zur Verfügung. Gerne können wir auch in einem Discord-Call direkt an deinem PC alles Schritt für Schritt durchgehen. Wenn du also detaillierte Einblicke in meine Blog-Reihe "Snippets aus der Praxis" oder spezifische Fragen zu WordPress, Webentwicklung oder anderen Themen hast, stehe ich dir über die entsprechende Patreon-Mitgliedschaft persönlich zur Verfügung.

Kommentare

URLs werden automatisch verlinkt
Kommentare werden geladen...