Detta talar om förändringarna som har hänt sedan 8.0. En av punkterna som har listats för dig att hänvisa till är denna:
Som ett resultat av detta skiljer sig standardteckenuppsättningen och sorteringen för nya objekt från tidigare om inte en explicit teckenuppsättning och sortering anges. Detta inkluderar databaser och objekt i dem, såsom tabeller, vyer och lagrade program.
Ett sätt att bevara de tidigare standardinställningarna är att starta servern med dessa rader i my.cnf
fil:
[mysqld]
character_set_server=latin1
collation_server=latin1_swedish_ci
Ett annat alternativ, eftersom du kör docker, är att ange dessa konfigurationsalternativ som kommandoradsargument till docker run-kommandot. Till exempel:
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, om du vill göra ändringar - förhoppningsvis bör dessa räcka:
För att använda 4-byte UTF-8-teckenuppsättningar med Connector/J, konfigurera MySQL-servern med character_set_server=utf8mb4
, och lämna characterEncoding
ut ur Connector/J-anslutningssträngen.
Connector/J kommer då att automatiskt upptäcka UTF-8
inställning
Hoppas detta hjälper!