概要
この記事では、apsaradb RDS for MySQLインスタンスのデータベース文字エンコードが正しいことを確認する方法について説明します。
説明
説明
以下の点にご注意ください。
- インスタンスやデータの変更など、リスクのある操作を実行する場合は、インスタンスのディザスタリカバリ機能とフォールトトレランス機能を確認して、データのセキュリティを確保します。
- ECSおよびRDSインスタンスを含むがこれらに限定されないインスタンスの設定およびデータを変更する前に、スナップショットを作成するか、RDSログバックアップを有効にすることを推奨します。
- Alibaba Cloud管理コンソールでログオンアカウントやパスワードなどのセキュリティ情報を承認または送信した場合は、そのような情報をタイムリーに変更することを推奨します。
文字セットは、データベースを設計するときに考慮する必要があるものの1つです。 ビジネスシナリオとユーザーデータに基づいて文字セットを検討することが重要です。
Introduction to character encoding
- RDS コンソールへログインします。 詳細については、「apsaradb RDS For MySQLインスタンスへの接続」をご参照ください。
- 次のSQL文を順番に実行して、対応するデータベースの文字セットを表示します。
'% character %' のような変数を表示します。コマンド出力は次のとおりです。説明注:[$DB_Name] はデータベース名です。
説明注:
- 上記のパラメーターは、文字化け文字が表示されないように、すべてのパラメーターが統一されていることを保証する必要があります。
- character_set_client、character_set_connection、およびcharacter_set_resultsは、クライアントの設定です。
- character_set_system、character_set_server、およびcharacter_set_databaseは、サーバー側の設定です。
- サーバー側パラメーターpriorityは、character_set_database > character_set_server > character_set_systemです。
データベースの文字エンコーディングが正しいことを確認します。
- 次のSQL文を実行して、クライアントの文字セットを変更します。
set names [$Character_Set]説明注:[$Character_Set] は文字セットです。
- 次のSQLステートメントを実行して、character_set_databaseパラメーターを変更します。
ALTER DATABASE [$DB_Name] CHARACTER SET = [$Character_Set] COLLATE = [$Rules];説明注:[$Rules] は文字セットのルールです。
- ページの左上隅にあるRDSコンソールにログインし、インスタンスが配置されているリージョンを選択します。 設定を変更する RDS インスタンスの ID をクリックします。 左側のナビゲーションウィンドウで、[パラメーター] を選択します。
- 変更可能なパラメータータブで、character_set_serverを見つけて変更し、[確認] をクリックします。
説明
ヒント: character_set_serverパラメーターを変更するには、インスタンスを再起動する必要があります。 そのため、ピーク時間外に操作を実行することを推奨します。
- 右上隅にある [パラメーターの送信] をクリックします。 表示されるダイアログボックスで、[確認] をクリックします。 インスタンスが再起動されるまで待ちます。
説明
このパラメーターを変更した後のヒントは、特権アカウントで作成されたデータベースにのみ有効ですが、現在のデータベースには有効ではありません。
- character_set_systemは当面変更を提供しませんが、優先順位が最も低いため、影響は小さくなります。 上記の設定を完了すると、基本的に文字化けがないことが保証されます。 コードでクライアント文字のエンコードを設定する場合は、手順1のSQLステートメントを使用してクライアント設定を変更することをお勧めします。
適用範囲
- Apsaradb for MySQL