参考: MySQL 文字セットの概要 utf8mb4 は MySQL 8.0 のデフォルトの文字セットとなり、MySQL 8.0.1 以降では utf8mb4_0900_ai_ci がデフォルトの照合順序となります。 新しいプロジェクトではutf8mb4のみが考慮されます UTF-8 エンコーディングは、1 ~ 4 バイトを使用して文字を保存できる可変長エンコーディング メカニズムです。 歴史的な問題により、MySQL の utf8 エンコーディングは真の UTF-8 ではなく、最大長が 3 バイトの切り捨てバージョンです。絵文字や複雑な中国語の文字など、4 バイトを占める UTF-8 エンコードに遭遇すると、ストレージ例外が発生します。 MySQL 5.5.3 以降では、完全な UTF-8 を実装するために utf8mb4 エンコーディングが使用されるようになりました。ここで、mb4 は最大バイト数が 4 であることを意味し、最大 4 バイトを占めます。 8.0 以降、特定のバージョンでは utf8mb4 がデフォルトの文字エンコーディングとして使用されます。 サーバーのデフォルト文字セットをutf8mb4に設定する データベースを作成するときに文字セットが指定されていない場合は、サーバーのデフォルトの文字セットが使用されます。サーバーのデフォルト文字セットを utf8mb4 に設定すると利便性が向上します。 MySQL設定ファイルを編集する 注意する必要があるのは 5 つのシステム変数だけです。すべてを utf8mb4 に変更すると、変更は成功します。
[mysqld] の下に default-character-set=utf8 を追加した後、不明な理由でサーバーを起動できません。後で次のように変更しました (MySQL 5.7): [mysqld] init_connect = '照合接続を utf8mb4_unicode_ci に設定' init_connect = '名前をutf8mb4に設定' 文字セットサーバー=utf8mb4 照合サーバー=utf8mb4_unicode_ci 文字セットクライアントハンドシェイクをスキップする ... [クライアント] デフォルトの文字セット=utf8mb4 MySQL 8.0 のデフォルト設定は utf8mb4 なので、変更する必要はありません。変更する場合、設定ファイルは次のようになります。 [mysqld] データディレクトリ=/var/lib/mysql ソケット=/var/lib/mysql/mysql.sock ログエラー=/var/log/mysqld.log pidファイル=/var/run/mysqld/mysqld.pid 文字セットサーバー = utf8mb4 [クライアント] デフォルトの文字セット=utf8mb4 再起動して確認 システム エンコーディング、接続エンコーディング、サーバー エンコーディング、クライアント エンコーディングがすべて UTF-8 に設定されていることがわかります。 mysql> 「%char%」のような変数を表示します。 +--------------------------------------+--------------------------------+ | 変数名 | 値 | +--------------------------------------+--------------------------------+ | 文字セットクライアント | utf8mb4 | | 文字セット接続 | utf8mb4 | | 文字セットデータベース | utf8mb4 | | 文字セットファイルシステム | バイナリ | | 文字セット結果 | utf8mb4 | | 文字セットサーバー | utf8mb4 | | 文字セットシステム | utf8 | | 文字セットディレクトリ | /usr/share/mysql-8.0/charsets/ | | パスワードの検証.特殊文字数 | 1 | +--------------------------------------+--------------------------------+ セット内の行数は 9 です (0.00 秒) MySQL の文字セット関連変数 character_set_client: クライアント要求データの文字セット データベースを作成するときは、文字セットをutf8mb4として指定します。 データベースのデフォルトの文字セットが utf8mb4 でない場合は、データベースの作成時に文字セットを指定できます。 データベース mydb を作成し、文字セット utf8mb4 を utf8mb4_unicode_ci に照合します。 照合 保存に加えて、文字をソートしたり比較したりする必要もあります。 utf8mb4_unicode_ci の使用が推奨されますが、utf8mb4_general_ci を使用しても問題ありません。 MySQL 8.0 のデフォルト値は utf8mb4_0900_ai_ci であり、これは utf8mb4_unicode_ci の一種です。具体的な意味は次のとおりです。
utf8mb4 がデフォルトの文字セットとなり、MySQL 8.0.1 以降では utf8mb4_0900_ai_ci がデフォルトの照合順序となります。以前は、utf8mb4_general_ci がデフォルトの照合でした。 utf8mb4_0900_ai_ci 照合がデフォルトの照合になったため、新しいテーブルではデフォルトで基本多言語面外の文字を格納できるようになりました。絵文字をデフォルトで保存できるようになりました。アクセントと大文字と小文字の区別が必要な場合は、代わりに utf8mb4_0900_as_cs を使用できます。 要約する これで、MySQL エンコーディング utf8 および utf8mb4 utf8mb4_unicode_ci および utf8mb4_general_ci に関するこの記事は終了です。MySQL エンコーディング utf8 および utf8mb4 に関する関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Linuxシステムにおける仮想デバイスファイルのさまざまな実用的な使用法の詳細な説明
>>: Elementのメッセージポップアップウィンドウが繰り返しポップアップする問題の解決
システムの問題、アプリケーションの速度低下、または原因不明の問題をトラブルシューティングする場合、最...
序文前回の記事ではNode.jsのインストールと設定を紹介しました。今回はVScodeでbableを...
この記事では、登録またはログイン時に電子メール アドレスを入力する際のドロップダウン プロンプトのネ...
序文JavaScript は、キーワードを使用してプライベート変数を宣言できる他の言語とは異なります...
開発およびデバッグのプロセスでは、新しいコードと古いコードの違いを比較する必要があります。比較には、...
今日、mysql の公式サイトから mysql-5.7.18-winx64.zip をダウンロードし...
この記事では、pycharm2017でpython3.6とmysqlを接続する方法を参考までに紹介し...
注: Web 開発では、フォームに autocomplete="off" を追加...
日常業務では、実行に時間のかかる SQL ステートメントを記録するために、スロー クエリを実行するこ...
Nginx の主な設定ファイルは nginx.conf で、グローバル ブロック、イベント ブロック...
1. CSSスコープの使用(スタイル分割) Vue では、CSS スタイルを現在のコンポーネントでの...
毎日サービスをチェックしているときに、portainer からコンテナ ログを確認しようとしたところ...
目次1. データベースエンジン1.1 ビューデータベースエンジン1.2 デフォルトのデータベースエン...
よく食べて十分に休息を取るというのは簡単なことのように思えますが、実際に実行するのはそれほど簡単では...
1. はじめに今日、同僚から、MySQL を使用して ElasticSearch に似た全文検索機能...