sql >> Databáze >  >> RDS >> Mysql

Znovu zavedena Neznámá chyba indexu počáteční znakové sady?

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!




  1. Vrácení potvrzené transakce

  2. Existuje Spring Batch 3 Upgrade Script pro MySQL?

  3. Vložte pořadové číslo do MySQL

  4. Jak vytvářet a udržovat databáze MySQL v cPanel