Isto fala sobre as mudanças que aconteceram desde 8.0Um dos pontos que foi listado para você se referir é este:
Como resultado, o conjunto de caracteres padrão e a ordenação para novos objetos diferem dos anteriores, a menos que um conjunto de caracteres e uma ordenação explícitos sejam especificados. Isso inclui bancos de dados e objetos dentro deles, como tabelas, exibições e programas armazenados.
Uma maneira de preservar os padrões anteriores é iniciar o servidor com essas linhas em
my.cnf
Arquivo:[mysqld]
character_set_server=latin1
collation_server=latin1_swedish_ci
Outra opção, já que você está executando o docker, é especificar essas opções de configuração como argumentos de linha de comando para o comando docker run. Por exemplo:
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
No cliente, se você quiser fazer alterações - espero que sejam suficientes:
Para usar conjuntos de caracteres UTF-8 de 4 bytes com Connector/J, configure o servidor MySQL com
character_set_server=utf8mb4
, e deixe characterEncoding
fora da cadeia de conexão Connector/J. O Connector/J detectará automaticamente o
UTF-8
contexto Espero que isto ajude!