Dette taler om de ændringer, der er sket siden 8.0Et af de punkter, der er blevet nævnt for dig at henvise til, er dette:
Som følge heraf adskiller standardtegnsættet og sorteringen for nye objekter sig fra tidligere, medmindre et eksplicit tegnsæt og sortering er angivet. Dette inkluderer databaser og objekter i dem, såsom tabeller, visninger og lagrede programmer.
En måde at bevare de tidligere standardindstillinger på er at starte serveren med disse linjer i my.cnf
fil:
[mysqld]
character_set_server=latin1
collation_server=latin1_swedish_ci
En anden mulighed, da du kører docker, er at angive disse konfigurationsindstillinger som kommandolinjeargumenter til docker run-kommandoen. For eksempel:
docker run -d \
--network my-net \
-h mysqldb \
--name mysqldb \
-p 3306:3306 \
-e MYSQL_RANDOM_ROOT_PASSWORD=yes \
-e MYSQL_DATABASE=mydb \
-e MYSQL_USER=admin \
-e "MYSQL_PASSWORD=admin" \
mysql:8 --character-set-server=latin1 --collation-server=latin1_swedish_ci
På klienten, hvis du ønsker at foretage ændringer - forhåbentlig skulle disse være tilstrækkelige:
For at bruge 4-byte UTF-8 tegnsæt med Connector/J skal du konfigurere MySQL-serveren med character_set_server=utf8mb4
, og lad characterEncoding
stå ud af Connector/J-forbindelsesstrengen.
Connector/J vil derefter automatisk detektere UTF-8
indstilling
Håber dette hjælper!