Bevor Sie fortfahren
Bevor Sie fortfahren, stellen Sie sicher, dass:
- Confluence abgeschaltet ist
- Ein vollständiges Datenbank Backup vorliegt
Es ist außerdem sinnvoller wenn Sie diese Änderugen zuerst in einer Testumgebung ausprobieren, bevor Sie die Schritte auf die Produktivumgebung übertragen.
Die Datenbank-Tabellen mit falschen Zeichensätzen oder Kollationen ermitteln
Ändern Sie "database" auf den Namen Ihrer Datenbank ab und starten Sie die folgende Abfrage:
SELECT T.TABLE_NAME, C.CHARACTER_SET_NAME, C.COLLATION_NAME FROM information_schema.TABLES AS T, information_schema.COLLATION_CHARACTER_SET_APPLICABILITY AS C WHERE C.collation_name = T.table_collation AND T.table_schema = 'database' AND ( C.CHARACTER_SET_NAME != 'utf8' OR C.COLLATION_NAME != 'utf8_bin' );
Die Kollationen und Zeichensätze anpassen
Um eine einzelne Tabelle zu fixen, lassen Sie die folgende Abfrage gegen Ihre Datenbank laufen - ändern Sie auch hier wieder "tableName" in den entsprechenden Namen um:
ALTER TABLE `tableName` CHARACTER SET utf8 COLLATE utf8_bin
Um alle Tabellen in Ihrer Datenbank zu ändern müssen Sie für jede falsch konfigurierte Tabelle eine ALTER TABLE Abfrage generieren. Das folgende Script erzeugt eine Kollektion dieser Abfragen. Ändern Sie "database" auf den Namen Ihrer Datenbank ab.
SELECT CONCAT('ALTER TABLE ', table_name, ' CHARACTER SET utf8 COLLATE utf8_bin;') FROM information_schema.TABLES AS T, information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` AS C WHERE C.collation_name = T.table_collation AND T.table_schema = 'database' AND ( C.CHARACTER_SET_NAME != 'utf8' OR C.COLLATION_NAME != 'utf8_bin' );
Weiterführende Quellen
- MySQL Kollationsreparatur: Änderungen auf Datenbank-Ebene
- MySQL Kollationsreparatur: Änderungen auf Tabellen-Ebene
- MySQL Kollationsreparatur: Änderungen auf Spalten-Ebene
- MySQL Kollationsreparatur: Kodierprobleme auf Spalten-Ebene
- MySQL Kollationsreparatur: Fallstudie - Reparatur einer Produktionsdatenbank
Confluence