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

Nastavení utf8mb4 pro talent - nefunguje

Nejprve se ujistěte, že je váš server správně nakonfigurován pro použití utf8mb4. Podle tohoto výukového programu , musíte do souboru my.cnf (nebo my.ini, pokud používáte Windows) přidat následující:

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

To říká serveru MySQL, aby používal utf8mb4 a ignoroval jakékoli kódování nastavené klientem.
Poté jsem nemusel v Talendu nastavovat žádné další vlastnosti připojení MySQL. Tento dotaz jsem provedl v Talendu, abych zkontroloval jím nastavené kódování:

SHOW VARIABLES 
WHERE Variable_name LIKE 'character\\_set\\_%' OR Variable_name LIKE 'collation%'

A vrátilo se:

|=-----------------------+-----------------=|
|Variable_Name           |Value             |
|=-----------------------+-----------------=|
|character_set_client    |utf8mb4           |
|character_set_connection|utf8mb4           |
|character_set_database  |utf8mb4           |
|character_set_filesystem|binary            |
|character_set_results   |                  |
|character_set_server    |utf8mb4           |
|character_set_system    |utf8              |
|collation_connection    |utf8mb4_unicode_ci|
|collation_database      |utf8mb4_unicode_ci|
|collation_server        |utf8mb4_unicode_ci|
'------------------------+------------------'

Následující test pro vložení hromady hoven funguje:

Aktualizovat

Pomocí nativních komponent MySQL v Talendu 6.3.1 získáte mysql-connector-java-5.1.30-bin.jar , který má automaticky detekovat utf8mb4 používaný serverem, ale z nějakého důvodu (chyba?) to nedělá.
Přešel jsem na používání komponent JDBC a stáhl jsem si nejnovější mysql konektor (mysql-connector-java-5.1.45-bin.jar ), zprovoznil jsem to nastavením těchto dalších parametrů na tJDBCConnection komponenta :

useUnicode=true&characterEncoding=utf-8

(i když specifikuji utf-8, dokument říká, že to bude považovat za utf8mb4)

Moje práce teď vypadá takto:




  1. Jak mohu přiřadit hodnotu proměnné pomocí agregační funkce v mysql?

  2. Jak odstranit úvodní a koncové mezery v MySQL

  3. Přidání kroku úlohy do existující úlohy agenta SQL Server (T-SQL)

  4. Normalizace ztěžuje spojení napříč více tabulkami