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はツリー構造の追加、削除、変更、チェックのサンプルコードを実装します

推薦する

MySQL CHARとVARCHARの選択方法

目次VARCHAR 型と CHAR 型結論: VARCHAR 型と CHAR 型VARCHAR と ...

初心者がHTMLタグを学ぶ(2)

関連記事:初心者が学ぶ HTML タグ (1)初心者は、いくつかの HTML タグを理解することで ...

CSS 透明ボーダー背景クリップマジック

この記事では、CSSの透明な境界線の背景クリップの素晴らしい使い方を主に紹介し、みんなと共有し、自分...

MySQL における INSERT INTO SET の利点

MySQL データベースにデータを挿入します。以前はよく使われていた INSERT INTO テーブ...

Vueは、サイドナビゲーションバーをタブページに関連付けるサンプルコードを実装します。

目次テクノロジースタック効果分析するテクノロジースタックサイドバー用Antdtabは要素を使用します...

Linux で特定の時間にコマンドを実行する方法

先日、rsync を使用して LAN 上の別のシステムに大きなファイルを転送していました。非常に大き...

デザイン理論:テキスト表現とユーザビリティ

<br />テキストデザインでは、通常、テキストのレイアウト、つまりテキストをより美しく...

Docker を使用してフロントエンド アプリケーションをデプロイする方法

Dockerはますます普及しています。環境を軽量かつ柔軟に分離し、容量を拡張し、運用保守管理を容易に...

divとspanの違いと使い方

目次1. DIVとSPANの違いと特徴2. スパンタグの概要3. 拡大と改善4. 凡例の効果の実証例...

JavaScript コードベースをよりクリーンにする 5 つの方法

目次1. 短絡や条件文の代わりにデフォルトのパラメータを使用する2. 複数の条件の処理3. スイッチ...

Fabric.js は DIY ポストカード機能を実装します

この記事では、DIYポストカード機能を実現するためのfabricjsの具体的なコードを参考までに共有...

WeChatアプレットで計算機機能を実装する

この記事は、WeChat アプレットを使用して作成された簡単な計算機です。興味のある方はご覧ください...

画像の盗難を防ぐために Nginx で Referer を設定する方法

サーバーの画像が他のウェブサイトからホットリンクされると、サーバーの帯域幅とアクセス速度に影響します...

vue keepAlive キャッシュクリア問題事例の詳細な説明

Keepalive は Vue プロジェクトでのキャッシュによく使用され、基本的な要件を満たすのに非...

Tomcat サーバーの設定と Web プロジェクトの公開に関する IDEA グラフィック チュートリアル

1. Webプロジェクトを作成したら、Tomcatを例にサーバーを構成する必要があります。 2. 実...