Toto mluví o změnách, které se udály od 8.0. Jedním z bodů, které byly uvedeny, abyste se mohli zmínit, je toto:
V důsledku toho se výchozí znaková sada a řazení pro nové objekty liší od předchozích, pokud není specifikována explicitní znaková sada a řazení. To zahrnuje databáze a objekty v nich, jako jsou tabulky, pohledy a uložené programy.
Jedním ze způsobů, jak zachovat předchozí výchozí hodnoty, je spustit server s těmito řádky v my.cnf
soubor:
[mysqld]
character_set_server=latin1
collation_server=latin1_swedish_ci
Další možností, protože používáte docker, je zadat tyto možnosti konfigurace jako argumenty příkazového řádku pro příkaz docker run. Například:
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
Na klientovi, pokud chcete provést změny - doufejme, že tyto by měly stačit:
Chcete-li použít 4bajtové znakové sady UTF-8 s konektorem/J, nakonfigurujte server MySQL pomocí character_set_server=utf8mb4
a ponechte characterEncoding
z připojovacího řetězce Connector/J.
Connector/J pak automaticky detekuje UTF-8
nastavení
Doufám, že to pomůže!