🗃️ MySQL Zeichensatz konvertieren
MySQL Zeichensatz konvertieren (utf8 → utf8mb4)
🔍 Warum konvertieren?
Die Umstellung auf utf8mb4 ist nur erforderlich, wenn:
- du eine ältere MODX-Installation hast, deren Datenbank noch auf
utf8/utf8_general_ciläuft, oder - die Datenbank falsch angelegt wurde (z.B. Hosting-Default war nur
utf8), oder - alte Dumps / Migrationen in veralteten Zeichensätzen vorliegen.
MySQLs altes utf8 unterstützt technisch nur 3 Byte pro Zeichen und kann viele moderne Unicode-Zeichen nicht speichern.
Der aktuelle Standard ist:
- Zeichensatz:
utf8mb4(echtes vollständiges UTF-8, 4 Byte) - Kollation:
utf8mb4_unicode_ci(korrekte Unicode-Sortierung)
MODX unterstützt utf8mb4 vollständig und empfiehlt es für neue und bestehende Installationen.
Typische Ausgangslage:
- aktueller Zeichensatz:
utf8 - aktuelle Kollation:
utf8_general_ci
Ziel:
- Zeichensatz:
utf8mb4 - Kollation:
utf8mb4_unicode_ci
🛠️ Schritt-für-Schritt Anleitung
1️⃣ Backup erstellen
Vor jeder Umstellung unbedingt ein vollständiges Datenbank-Backup anlegen.
2️⃣ Datenbank-Kollation in phpMyAdmin ändern
In phpMyAdmin:
- Datenbank auswählen
- Reiter Operationen
- Kollation:
utf8mb4_unicode_cisetzen - Änderungen speichern
Hinweis: Das ändert nur die Standardkollation, nicht die bestehenden Tabellen/Spalten.
3️⃣ Datenbank exportieren
- Export im Format SQL
- Zeichensatz: UTF-8
- Datei lokal speichern
4️⃣ Exportdatei bearbeiten
Die SQL-Datei in einem Editor öffnen (UTF-8 ohne BOM).
Ersetze:
utf8_general_ci→utf8mb4_unicode_ciutf8→utf8mb4
Achte darauf, nur Zeichensatz-/Kollationsangaben zu ersetzen, nicht Wörter im Inhalt.
5️⃣ Alte Datenbank löschen
Im phpMyAdmin die alte Datenbank entfernen oder leeren.
6️⃣ Neue Datei importieren
Die bearbeitete SQL-Datei wieder importieren.
Nach dem Import ist die komplette Datenbank auf:
- Zeichensatz: utf8mb4
- Kollation: utf8mb4_unicode_ci
ℹ️ Hinweise
Warum utf8mb4_unicode_ci?
- präzisere Unicode-Sortierung
- ideale Kompatibilität für Webanwendungen
- empfohlen für MODX
Alternative Kollationen
utf8mb4_unicode_520_ci→ neuere Unicode-Versionutf8mb4_0900_ai_ci→ nur MySQL 8 (modernste Unicode-Regeln)
✅ Fazit
Die Umstellung von utf8_general_ci auf utf8mb4_unicode_ci ist sinnvoll und zukunftssicher.
Mit der Backup-Export-Edit-Import-Methode stellst du sicher, dass alle Tables und alle Spalten korrekt konvertiert werden.