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

MySQLにUTF-8を適切に処理させる方法

    更新:

    簡単な答え-ほとんどの場合、utf8mb4を使用する必要があります 文字セットとutf8mb4_unicode_ci 照合。

    データベースを変更するには:

    ALTER DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    

    参照:

    元の回答:

    MySQL 4.1以降には、UTF-8のデフォルトの文字セットがあります。これはmy.cnfで確認できます ファイル、両方を設定することを忘れないでください クライアントとサーバー(default-character-set およびcharacter-set-server

    UTF-8に変換する既存のデータがある場合は、データベースをダンプして、UTF-8としてインポートし直します。次の点を確認してください。

    • SET NAMES utf8を使用します データベースにクエリ/挿入する前に
    • DEFAULT CHARSET=utf8を使用します 新しいテーブルを作成するとき
    • この時点で、MySQLクライアントとサーバーはUTF-8になっているはずです(my.cnfを参照)。 )。使用する言語(PHPなど)もUTF-8である必要があることに注意してください。 PHPの一部のバージョンは、独自のMySQLクライアントライブラリを使用しますが、UTF-8に対応していない場合があります。

    既存のデータを移行する場合は、最初にバックアップすることを忘れないでください。物事が計画どおりに進まない場合、多くの奇妙なデータのチョッピングが発生する可能性があります!

    いくつかのリソース:



    1. SQL Serverで外部キー制約を無効にする方法(T-SQLの例)

    2. ClusterControl 1.5-自動バックアップ検証、バックアップとクラウド統合からスレーブを構築

    3. はじめにAzureSQLデータベースでのパフォーマンスの調整

    4. 空の配列を持つレコードを取得するときに問題が発生します