MySQL 5.x の文字化け問題の解決方法

MySQL 5.x の文字化け問題の解決方法

MySQL はよく使われるオープンソースのデータベース ソフトウェアですが、初めてのユーザーにはあまり使いやすくないようです。MySQL5.x バージョンのデフォルトの文字セットは latin1 で、これは私たちが知っている ISO-8859-1 文字セットです。この文字セット エンコーディングには中国語の文字が含まれていないため、使用すると中国語の文字が文字化けして表示されます。これは、データベースのデフォルトの文字セットを変更することで解決できます。

MySQL コマンドラインを入力します:

mysql> '%colla%' のような変数を表示します。
+----------------------+-------------------+
| 変数名 | 値 |
+----------------------+-------------------+
| 照合接続 | gbk_chinese_ci |
| 照合データベース | latin1_swedish_ci |
| 照合サーバー | latin1_swedish_ci |
+----------------------+-------------------+
セットに 3 行、警告 1 件 (0.00 秒)

mysql> '%char%' のような変数を表示します。
+--------------------------+----------------------------------------------------------------------+
| 変数名 | 値 |
+--------------------------+----------------------------------------------------------------------+
| 文字セットクライアント | gbk |
| 文字セット接続 | gbk |
| 文字セットデータベース | latin1 |
| 文字セットファイルシステム | バイナリ |
| 文字セット結果 | gbk |
| 文字セットサーバー | latin1 |
| 文字セットシステム | utf8 |
| 文字セットディレクトリ | C:\Program Files\MySQL\MySQL Server 5.7\share\charsets\ |
+--------------------------+----------------------------------------------------------------------+
セット内の行数は 8 行、警告数は 1 (0.00 秒)

デフォルトの文字セットがlatin1になっていることがわかります。

MySQL 構成ファイルを見つけます。Windows の構成ファイルは my.ini です。私のコンピュータは C:\ProgramData\MySQL\MySQL Server 5.7 にあります。Linux で変更する必要があるファイルは my.conf です。具体的なパスは実際のインストール場所によって異なります。次のノードでそれぞれ構成を変更します。

私が使用している 5.7 の [client] ノードの設定を追加する必要があり、他の 2 つのノード [mysql] と [mysql] はコメントを開いて utf8 に変更する必要があります。

[クライアント]
デフォルトの文字セット=utf8
[mysql]
デフォルトの文字セット=utf8
[mysql]
文字セットサーバー=utf8

次にMySQLを再起動します

ネットストップmysql
ネットスタートMySQL

文字セットを再度確認すると、すべてがutf8文字セットに変更されています

mysql> '%colla%' のような変数を表示します。
+----------------------+-----------------+
| 変数名 | 値 |
+----------------------+-----------------+
| 照合接続 | gbk_chinese_ci |
| 照合データベース | utf8_general_ci |
| 照合サーバー | utf8_general_ci |
+----------------------+-----------------+
セットに 3 行、警告 1 件 (0.00 秒)

mysql> '%char%' のような変数を表示します。
+--------------------------+----------------------------------------------------------------------+
| 変数名 | 値 |
+--------------------------+----------------------------------------------------------------------+
| 文字セットクライアント | gbk |
| 文字セット接続 | gbk |
| 文字セットデータベース | utf8 |
| 文字セットファイルシステム | バイナリ |
| 文字セット結果 | gbk |
| 文字セットサーバー | utf8 |
| 文字セットシステム | utf8 |
| 文字セットディレクトリ | C:\Program Files\MySQL\MySQL Server 5.7\share\charsets\ |
+--------------------------+----------------------------------------------------------------------+
セット内の行数は 8 行、警告数は 1 (0.00 秒)

エンコードの一貫性を確保するために、データベースまたはテーブルを作成するときに文字セットを指定し、接続文字列の後に接続パラメータを指定することもできます。

?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • MySQL 8.0.24 バージョンのインストールと設定方法のグラフィックチュートリアル
  • MySQL 8.0.24 リリースノートのいくつかの改善点
  • MySQLのMVCCマルチバージョン同時実行制御の実装
  • MySQL 8.0.23のルートパスワードをリセットするための最適なソリューション
  • MySql8.0バージョンに接続するMyBatisの設定問題について
  • SeataがMySQL 8バージョンを使用できない問題を解決する方法
  • DBeaver を MySQL バージョン 8 以降に接続し、起こりうる問題を解決する方法の詳細な説明
  • IDEA で mysql8.0.3 と mybatis-generator を使用する際に発生するバグ
  • CentOS 7 に MySQL 8.0.20 データベースをインストールするための詳細なチュートリアル
  • Mysql5.7 以降での ONLY_FULL_GROUP_BY エラーの解決方法
  • mysql8.0.19 winx64バージョンのインストール問題を解決する
  • Django 2.2 と PyMySQL バージョンの互換性の問題
  • MySQL 5.7 をバイナリモードでインストールし、Linux でシステムを最適化する手順
  • MySQL 8.0.18 のさまざまなバージョンのインストールとインストール中に発生した問題 (要点の要約)
  • MySQLのバージョンアップ方法を超詳しく解説

<<:  Dockerに関するよくある質問

>>:  Vueはツリー構造の追加、削除、変更、チェックのサンプルコードを実装します

推薦する

フォーム入力ボックスに関するWebデザインのヒント

この記事では、Web デザインにおけるフォーム入力ボックスに関するヒントとコードをいくつか紹介します...

Linux システムに 3 つ以上の Tomcat をインストールする (詳細な手順)

複数のTomcatをインストールする場合は、システムにJDKがインストールされている必要があり、 T...

MySQL のクラスター化インデックスとクラスター化インデックスの成長の仕組みを理解する

このノートでは、 MySQL の B+Tree インデックスとは何ですか?クラスター化インデックスは...

Linuxのtopコマンド出力の詳細な説明

序文皆さんは Linux で top コマンドを使ったことがあると思います。私は Linux に触れ...

HTML要素によるFlashブロックの詳細な例

コードをコピーコードは次のとおりです。 wmode パラメータ:透過モード: z-indexを使用し...

Windows 10 システムに mysql-8.0.13 (zip インストール) をインストールする詳細なチュートリアル

インストール環境の説明•システムバージョン: windows10 •MySQL バージョン: mys...

Vue開発ウェブサイトSEO最適化方法の詳細な説明

ページデータの表示には Vue などの js のデータバインディング機構が使用されるため、クローラー...

Vueはmockjsを使用してシミュレートされたデータケースの詳細を生成します

目次プロジェクトにmockjsをインストールするVueプロジェクトでmockjsを使用する基本的なプ...

Linux で Multitail コマンドを使用するチュートリアル

MultiTail は、tail コマンド機能と同様に、複数のドキュメントを同時に監視するために使用...

Linux における SUID、SGID、SBIT の素晴らしい使い方の詳細な説明

序文Linux のファイル権限管理はとにかく素晴らしいです。SUID、SGID、SBIT の機能を確...

Vue3 の ref と toRef の違いを簡単に分析します

1. refがコピーされ、ビューが更新されますrefを使用してオブジェクトのプロパティ値をレスポンシ...

jsはシンプルなショッピングカートモジュールを実装します

この記事の例では、参考までに、シンプルなショッピングカートモジュールを実装するためのjsの具体的なコ...

OCSP を有効にすると、https 証明書の検証効率が向上し、Let's Encrypt SSL 証明書へのアクセスが遅くなる問題が解決されます。

ここ数日、ウェブサイトを初めて開いたときにアクセスが非常に遅いのですが、その後はページが正常に開きま...

開発者がデータベースロックを詳細に理解する必要がある理由

1.ロックしますか? 1.1 ロックとは何ですか?ロックの本当の意味は、鍵またはコードで開くことがで...