Mysql
 sql >> Database >  >> RDS >> Mysql

Reintrodotto Errore di indice del set di caratteri iniziale sconosciuto?

Questo parla dei cambiamenti avvenuti dalla 8.0Uno dei punti che è stato elencato a cui fare riferimento è questo:

Di conseguenza, il set di caratteri e le regole di confronto predefiniti per i nuovi oggetti differiscono da quelli precedenti, a meno che non vengano specificati un set di caratteri e regole di confronto espliciti. Ciò include database e oggetti al loro interno, come tabelle, viste e programmi memorizzati.

Un modo per preservare le impostazioni predefinite precedenti è avviare il server con queste righe in my.cnf file:

[mysqld]
character_set_server=latin1
collation_server=latin1_swedish_ci

Un'altra opzione, poiché stai eseguendo la finestra mobile, consiste nello specificare queste opzioni di configurazione come argomenti della riga di comando per il comando di esecuzione della finestra mobile. Ad esempio:

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

Sul client, se desideri apportare modifiche, si spera che queste dovrebbero essere sufficienti:

Per utilizzare set di caratteri UTF-8 a 4 byte con Connector/J, configura il server MySQL con character_set_server=utf8mb4 e lascia characterEncoding dalla stringa di connessione Connector/J.

Connector/J rileverà automaticamente il UTF-8 impostazione

Spero che questo aiuti!