Ceci parle des changements qui se sont produits depuis la 8.0L'un des points qui a été répertorié pour que vous puissiez vous y référer est le suivant :
Par conséquent, le jeu de caractères et le classement par défaut des nouveaux objets diffèrent des précédents, sauf si un jeu de caractères et un classement explicites sont spécifiés. Cela inclut les bases de données et les objets qu'elles contiennent, tels que les tables, les vues et les programmes stockés.
Une façon de conserver les valeurs par défaut précédentes est de démarrer le serveur avec ces lignes dans my.cnf
fichier :
[mysqld]
character_set_server=latin1
collation_server=latin1_swedish_ci
Une autre option, puisque vous exécutez docker, consiste à spécifier ces options de configuration en tant qu'arguments de ligne de commande pour la commande docker run. Par exemple :
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
Sur le client, si vous souhaitez apporter des modifications - nous espérons que celles-ci devraient suffire :
Pour utiliser des jeux de caractères UTF-8 à 4 octets avec Connector/J, configurez le serveur MySQL avec character_set_server=utf8mb4
, et laissez characterEncoding
hors de la chaîne de connexion Connector/J.
Connector/J détectera alors automatiquement le UTF-8
réglage
J'espère que cela vous aidera !