sql >> Databasteknik >  >> RDS >> Mysql

Återinfört Okänt initialt teckenuppsättningsindexfel?

Detta talar om förändringarna som har hänt sedan 8.0. En av punkterna som har listats för dig att hänvisa till är denna:

Som ett resultat av detta skiljer sig standardteckenuppsättningen och sorteringen för nya objekt från tidigare om inte en explicit teckenuppsättning och sortering anges. Detta inkluderar databaser och objekt i dem, såsom tabeller, vyer och lagrade program.

Ett sätt att bevara de tidigare standardinställningarna är att starta servern med dessa rader i my.cnf fil:

[mysqld]
character_set_server=latin1
collation_server=latin1_swedish_ci

Ett annat alternativ, eftersom du kör docker, är att ange dessa konfigurationsalternativ som kommandoradsargument till docker run-kommandot. Till exempel:

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

På klienten, om du vill göra ändringar - förhoppningsvis bör dessa räcka:

För att använda 4-byte UTF-8-teckenuppsättningar med Connector/J, konfigurera MySQL-servern med character_set_server=utf8mb4 , och lämna characterEncoding ut ur Connector/J-anslutningssträngen.

Connector/J kommer då att automatiskt upptäcka UTF-8 inställning

Hoppas detta hjälper!




  1. Hur man aktiverar CDC på uppsättning tabeller ELLER aktiverar på alla tabeller i en databas i SQL Server - SQL Server Tutorial

  2. Hur man genererar DDL-skript (Skapa) från SQL Server Management Studio (SSMS) - SQL Server / TSQL Tutorial Del 17

  3. Arbeta med JDBC Data i Domo

  4. 4 sätt att hitta rader som innehåller små bokstäver i Oracle