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

不明な初期文字セットインデックスエラーが再導入されましたか?

    これ 8.0以降に発生した変更について説明します。参照できるようにリストされているポイントの1つは、次のとおりです。

    その結果、明示的な文字セットと照合が指定されていない限り、新しいオブジェクトのデフォルトの文字セットと照合は以前とは異なります。これには、データベースと、テーブル、ビュー、ストアドプログラムなどのデータベース内のオブジェクトが含まれます。

    以前のデフォルトを保持する1つの方法は、my.cnfのこれらの行でサーバーを起動することです。 ファイル:

    [mysqld]
    character_set_server=latin1
    collation_server=latin1_swedish_ci
    

    dockerを実行しているため、もう1つのオプションは、これらの構成オプションをdockerrunコマンドのコマンドライン引数として指定することです。例:

    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
    

    クライアントで、変更を加えたい場合-うまくいけば、これらで十分です:

    Connector / Jで4バイトのUTF-8文字セットを使用するには、MySQLサーバーをcharacter_set_server=utf8mb4で構成します。 、characterEncodingのままにします Connector/J接続文字列から。

    その後、Connector/JはUTF-8を自動検出します 設定

    これがお役に立てば幸いです!




    1. InnotopをインストールしてMySQLサーバーのパフォーマンスを監視する

    2. Solr検索インデックスをデータベースとして使用する-これは間違っていますか?

    3. SQL ServerでのCOUNT()のしくみ

    4. タイムスタンプを(任意のギャップに基づいて)アイランドにグループ化する方法は?