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

MySQLレプリケーションの文字セット

    グローバルcharacter_set_%パラメーターとcollat​​ion%パラメーターが異なるサーバー間のレプリケーションはサポートされていません。

    http://dev.mysql.com/doc /refman/5.6/en/replication-features-charset.html

    -- on both servers check the output of...
    SHOW VARIABLES LIKE 'char%';
    SHOW VARIABLES LIKE 'collat%';
    

    セットと照合が異なる場合、レプリケーションが失敗する可能性があるだけでなく、変換セット/照合中に異なるソート順と文字損失が発生する可能性があります。ステートメントベースのレプリケーションを使用している場合、並べ替え順序は挿入/更新などに影響を与える可能性があります。

    古いサーバーと同じセットと照合を使用するように新しいサーバーを構成することをお勧めします。これにより、レプリケーションが正しく機能するようになります。また、データベース、テーブル、および列がすべて、マスターとスレーブの間で同じ照合を持っていることを確認する必要があります。新しいサーバーに移行すると、5.6オンラインスキーマ変更やperconaツールキットのpt-online-schema-changeなどのツールを使用してセットと照合を変更できます。

    また、perconaのpt-table-checksumを実行して、レプリケーションまたは最初のエクスポート/インポート中にテーブルが分岐していないことを確認することをお勧めします。

    違いの影響の詳細については、こちらをご覧ください:

    Amazon RDSを使用している場合は、デフォルトのmysql 5.6設定でutf8(mb3)とlatin1(サーバーとデータベース用)が混在していることに注意してください。非RDSからRDSへ/からのレプリケーション(送信元/宛先サーバーが一致する)の場合は、カスタムパラメータグループでそれらをオーバーライドする必要があります。



    1. 長い文字列のOracleCLOBまたはBLOBを挿入する方法

    2. mysql_real_escape_string()の使用中にエラーが発生しました

    3. SQL Server v.Next:STRING_AGG()のパフォーマンス

    4. SQL:優先度で並べ替えますが、最後に0を付けます