MySQL Server Default Charset festlegen
Hallo zusammen,
ich versuche aktuell einem MySQL (8.0.26) Server (Betrieben auf Windows Server 2019) einen neuen Default Charset für die Tabellen beizubringen.
Aktuell steht der default_character_set_name auf "utf8mb4". Rein müsste da "utf8" (Ja, ich weiß, ist teilweise deprecated, geht aber im Moment nicht anders).
Die Config (My.ini) hab ich nach einigen Anleitungen bereits angepasst:
Leider führt das nicht zum gewünschten Erfolg.
Dass der Server grundsätzlich utf8 kann, zeigt sich, da ich die Tabellen alle händisch durchgehen und mit "CONVERT TO CHARSET utf8;" auf UTF8 bringen kann. Das funktioniert, ist aber nicht Sinn der Sache.
Jemand noch einen Tipp für mich, wie ich das umgesetzt bekomme?
Danke und Grüße!
(Die Software welche das ganze dann schlussendlich nutzt umzubauen ist leider nicht möglich, weswegen ich das auch nicht austragen möchte. Diese läuft einfach nur so. Danke für euer Verständnis!)
ich versuche aktuell einem MySQL (8.0.26) Server (Betrieben auf Windows Server 2019) einen neuen Default Charset für die Tabellen beizubringen.
Aktuell steht der default_character_set_name auf "utf8mb4". Rein müsste da "utf8" (Ja, ich weiß, ist teilweise deprecated, geht aber im Moment nicht anders).
Die Config (My.ini) hab ich nach einigen Anleitungen bereits angepasst:
[mysql]
...
default-character-set = utf8
[mysqld]
...
collation-server=utf8_general_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
skip-character-set-client-handshake
Leider führt das nicht zum gewünschten Erfolg.
Dass der Server grundsätzlich utf8 kann, zeigt sich, da ich die Tabellen alle händisch durchgehen und mit "CONVERT TO CHARSET utf8;" auf UTF8 bringen kann. Das funktioniert, ist aber nicht Sinn der Sache.
Jemand noch einen Tipp für mich, wie ich das umgesetzt bekomme?
Danke und Grüße!
(Die Software welche das ganze dann schlussendlich nutzt umzubauen ist leider nicht möglich, weswegen ich das auch nicht austragen möchte. Diese läuft einfach nur so. Danke für euer Verständnis!)
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1086972704
Url: https://administrator.de/contentid/1086972704
Ausgedruckt am: 19.11.2024 um 13:11 Uhr
1 Kommentar
Leider führt das nicht zum gewünschten Erfolg.
Woran meinst du bei dir das es nicht erfolgreich war?Vielleicht verstehst du das default-charset auch falsch. dies gilt für alle neuen Tabellen und aktuelle Verbindungen, aber bestehende Datenbanen/Tabellen musst du erst umwandeln, von selbst übernehmen die das default geänderte Characterset nicht.
Die generelle Umstellung für neue Tabellen geht so wie du es oben schon gemacht hast
[mysql]
default-character-set = utf8
[mysqld]
character-set-server = utf8
restart-service MySQL80
Ergebnis:
utf8mb3 ist ein Alias für utf8
https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-utf8mb3.html
, ergo alles OK !
Eine daraufhin neu angelegte Tabelle hat folgende Einstellung
Fazit: Works .
Bestehende Tabellen musst du natürlich erst konvertieren, von selbst machen die das nicht, das wäre in diversen Szenarien auch fatal wenn das so wäre.
https://stackoverflow.com/questions/10859966/how-to-convert-all-tables-i ...
Gruß evo