Datenbank lässt sich nicht auf utf8mb4_unicode_ci umstellen

Datenbank lässt sich nicht auf utf8mb4_unicode_ci umstellen

von Holger Rohde -
Anzahl Antworten: 1

Hallo,

im Rahmen des Updates auf 3.10 wollten wir auch den Zeichensatz von "uft8mb4" auf "utf8mb4_unicode_ci" umstellen. Die config.php wurde entsprechend angepasst und die mySQL-Datenbank selbst sollte via php-Admin die Änderung an der Tabellenkollation umsetzen. Augenscheinlich funktionierte dies zunächst auch. Als wir dann im Anschluss die php-scripte "mysql_compressed_rows.php" und "mysql_collation.php" angestoßen haben, kam letztere mit einer unklaren Fehlermeldung zurück: "Abgeschlossen, es traten Fehler auf" 

Dann habe ich mir die Datenbank noch einmal genauer angesehen und mehrheitlich sind die Tabellen auf "utf8mb4_unicode_ci" umgestellt, jedoch sind einige auch noch im vorherigen "utf8mb4" geblieben. Vermutlich bekommen wir deshalb auch die Fehlermeldung und können aktuell keine neuen Nutzer direkt über Moodle einschreiben.

Jemand eine Idee, wie ich die restlichen Tabellen in der Datenbank doch noch umstellen kann oder wie ich mit der Fehlermeldung umgehen soll "Doppelter Eintrag"?
Screenshot anbei.

Beste Grüße
Holger

Anhang Bildschirmfoto 2021-04-23 um 18.47.08.png
Anhang Bildschirmfoto 2021-04-24 um 16.27.02.png
Mittelwert:  -
Als Antwort auf Holger Rohde

Re: Datenbank lässt sich nicht auf utf8mb4_unicode_ci umstellen

von Holger Rohde -

Ich habe das Problem inzwischen lösen können und beschreibe die Lösung hier kurz, falls jemand ein ähnliches Problem hat und den Post findet:

Tatsächlich lag es "nur" am doppelten Eintrag in der Datenbank. Ich habe per phpAdmin die Datenbank geöffnet und bin zum Eintrag "tag", weil in dieser Tabelle laut Fehlermeldung das Problem liegt. Mit klick auf <tag> öffnen und dann in der Suche einfach den doppelten Eintrag, in meinem Fall war es "fussball", eingeben. Den Eintrag habe ich dann einfach gelöscht und es waren auch keine weiteren Doppelungen vorhanden. Somit konnte ich die Änderung im Zeichensatz einfach ausführen.

Es gibt sicher noch elegantere Methoden per Script, doppelte Einträge zu finden und ggf. zu löschen, doch für nur einen doppelten Eintrag lässt es sich schnell auf diesem Weg lösen.