Zeige mehr…

MySQL Kollationsreparatur: Änderungen auf Tabellen-Ebene

Bevor Sie fortfahren

Bevor Sie fortfahren, stellen Sie sicher, dass:

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

Fragen?

Besuchen Sie unsere Hilfeseite für weitere Informationen.

Zeige mehr…
Zeige mehr…