sql >> データベース >  >> RDS >> Mysql

talendのutf8mb4設定-機能しない

    まず、サーバーがutf8mb4を使用するように適切に構成されていることを確認します。次のチュートリアル 、my.cnf(またはWindowsを使用している場合はmy.ini)に以下を追加する必要があります:

    [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
    

    これにより、MySQLサーバーはutf8mb4を使用し、クライアントによって設定されたエンコーディングを無視するようになります。
    その後、TalendのMySQL接続に追加のプロパティを設定する必要はありませんでした。 Talendでこのクエリを実行して、それによって設定されたエンコーディングを確認しました:

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

    そしてそれは戻った:

    |=-----------------------+-----------------=|
    |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|
    '------------------------+------------------'
    

    うんちの山を挿入するための次のテストは機能します:

    更新

    Talend 6.3.1でネイティブMySQLコンポーネントを使用すると、mysql-connector-java-5.1.30-bin.jarを取得できます。 、サーバーが使用するutf8mb4を自動的に検出するはずですが、何らかの理由で(バグ?)それを実行していません。
    JDBCコンポーネントの使用に切り替え、最新のmysql コネクタmysql-connector-java-5.1.45-bin.jar )、tJDBCConnectionでこれらの追加パラメーターを設定することで機能しました コンポーネント:

    useUnicode=true&characterEncoding=utf-8
    

    (utf-8を指定している場合でも、ドキュメントにはutf8mb4として扱われると書かれています)

    これが私の仕事の今の様子です:




    1. WordPressはIN()条件でステートメントを準備しました

    2. MySQL互換性のためのH2のIF関数

    3. MSSQLServerでの忘れられたトランザクションの自動削除

    4. MySQLビューのリストを取得するにはどうすればよいですか?