Linux での MySQL の文字化け問題の解決方法

Linux での MySQL の文字化け問題の解決方法

プロジェクトはサーバーと対話し、post を通じてサーバー側の jsp にアクセスし、jsp はサーバー側の mysql データベースにアクセスします。最終的に、クライアントに返される中国語のテキストは文字化けします。

プロセス全体では、エラーの原因として、ポスト エンコーディングが設定されていないかエンコーディングが一貫していない、JDBC に問題がある、Linux での mysql の初期エンコーディングに問題がある、という 3 つの理由が考えられます。

面倒なトラブルシューティングの後、最終的に問題は MySQL のエンコーディングの問題であることが判明しました。以下では、Linux で MySQL の中国語文字化けの問題を解決する方法について説明します。

まず、mysql コマンドライン モードに入り、mysql -uroot -p と入力して入力します。次に、 SHOW VARIABLES LIKE 'character_set_%';入力します。

表示内容が次のような場合:

+--------------------------+----------------------------------------------+
| 変数名 | 値 |
+--------------------------+----------------------------------------------+
| 文字セットクライアント | utf8 |
| 文字セット接続 | utf8 |
| 文字セットデータベース | utf8 |
| 文字セットファイルシステム | バイナリ |
| 文字セット結果 | utf8 |
| 文字セットサーバー | utf8 |
| 文字セットシステム | utf8 |
| 文字セットディレクトリ | /alidata/server/mysql-5.1.73/share/charsets/ |

変更は正しく行われ、MySQL のデフォルトの初期設定は utf8 ではなく latin1 になりました。

1 つの解決策は、テーブルのプロパティを utf8 に変更するか、テーブルの作成時に最後にDEFAULT CHARSET=utf8を追加することです。テーブルをutf8コードに設定します。このアプローチは失敗する可能性があります。

最も基本的な解決策は、MySQL 構成ファイルを開いて変更することです。 Linux の MySQL 設定ファイルの名前は my.cnf で、ディレクトリは /etc/my.cnf です。開いたら、次の手順に従います。

--[mysqld]タグの下に3行追加: default-character-set = utf8
文字セットサーバー = utf8
lower_case_table_names = 1 //テーブル名は大文字と小文字を区別しません(これはエンコードとは関係ありません)
--[mysql]タグの下に次の行を追加します: default-character-set = utf8
--[mysql.server]タグの下にdefault-character-set = utf8という行を追加します
--[mysqld_safe]タグの下にdefault-character-set = utf8という行を追加します
--[client]タグの下にdefault-character-set = utf8という行を追加します

上記のタグがすべて見つからなくても問題ありません。 MySQL コマンドラインを再度開き、 SHOW VARIABLES LIKE 'character_set_%';がまだ存在する場合は、MySQL コマンドラインで次のコマンドを実行します。

  • character_set_client = utf8 を設定します。
  • character_set_server = utf8 を設定します。
  • 文字セット接続を utf8 に設定します。
  • 文字セットデータベースを utf8 に設定します。
  • character_set_results = utf8 を設定します。
  • collat​​ion_connection を utf8_general_ci に設定します。
  • collat​​ion_database を utf8_general_ci に設定します。
  • collat​​ion_server = utf8_general_ci を設定します。

実行後、上記の show コマンドを再実行して目的の結果を取得します。

設定が完了したら、mysql を再起動する必要があります。再起動コマンドは /etc/init.d/mysqld restart です。

元のデータ テーブルを削除して再構築する必要があります。

ついに完成しました。

まとめ

1. /etc/my.cnf ファイルを変更し、次の行を追加します。

[クライアント]
# パイプ=
# ソケット=MYSQL
ポート=3306
デフォルトの文字セット=utf8
[mysql]
ビープ音なし
# デフォルトの文字セット=
デフォルトの文字セット=utf8
#サーバーセクション
# ----------------------------------------------------------------------
# 以下のオプションはMySQLサーバーによって読み込まれます。
# サーバーが正しくインストールされている場合(上記参照)は、次のように表示されます。 
# ファイル。
# サーバータイプ=3
[mysqld]
文字セットサーバー=utf8

2. mysql サービスを再起動します。

サービスmysqlを停止します。
サービスmysqlステータス;
サービスmysqlを開始します。
または、service mysql restart;

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • PHP で文字化けした中国語の文字を MySQL に書き込むためのサンプル ソリューション
  • MySQL 文字セットの文字化けとその解決方法
  • MySQL にテーブルデータを挿入するときに中国語の文字化けが発生する問題を解決する方法
  • JDBC 接続 mysql の文字化けしたコード例外問題の処理の概要
  • JDBC が MySQL に接続して中国語を処理するときに文字化けする問題の解決方法の詳細説明
  • MySQL データベースにおける中国語文字化け問題の詳細な説明
  • MySQLデータベース移行におけるデータ文字化けの問題を解決する

<<:  Linuxルートの初期値を設定する方法の簡単な分析

>>:  Vueはカウンターのシンプルな生成を実装します

推薦する

CSS と HTML とフロントエンド テクノロジーのレイヤー図

フロントエンドテクノロジー層 (写真は少し極端ですが、参考までに) Javascript と DOM...

NODE.JS を使用して WEBSERVER を作成する手順

目次Node.jsとはNodeJSをインストールするNode を使用して Hello World を...

Linuxでユーザーが所属するグループを変更する方法

Linuxでユーザーが所属するグループを変更する1. ユーザーのグループを設定する usermod ...

49 個の JavaScript のヒントとコツ

目次1. js整数の演算2. ネイティブアラートを書き換えてポップアップボックスの数を記録する3. ...

MySQL の問題を解決する: MSVCR120.dll が見つからないため、コードの実行を続行できません

1. 問題MySQL の初期化時に発生する問題は、次のとおりです。 1. 「MSVCR120.dll...

MySQL SQL ステートメントのパフォーマンス チューニングの簡単な例

MySQL SQL ステートメントのパフォーマンス チューニングの簡単な例サーバー開発を行う際には、...

WeChatミニプログラムがいいねサービスを実装

この記事では、WeChatアプレットの具体的なコードを参考までに紹介します。具体的な内容は次のとおり...

ファイルのアップロードの進行状況を示す React の例

目次React アップロードファイル表示の進行状況デモフロントエンドにReactアプリケーションを素...

Docker ベースの Redis マスタースレーブ クラスタの実装

目次1. Redisイメージを取得する2. 6つのRedisコンテナを作成する3. Redisコンテ...

フォーム内の無効なフォームフィールドの値を送信する方法 サンプルコード

フォーム内のフォーム フィールドが無効に設定されている場合、フォーム フィールドの値は送信されません...

Windows での PyTorch 開発環境のインストール チュートリアル

アナコンダのインストールAnaconda は、Python の使用を容易にするために作成されたソフト...

MySQL 中断された接続警告ログの分析

序文:場合によっては、MySQL に接続されたセッションが異常終了することが多く、エラー ログに「通...

Vueの監視プロパティの詳細

目次1.watchは一般的なデータ(数値、文字列、ブール値)の変更を監視します。 1. 数値2. 文...

Linux で lvm 論理ボリューム パーティションのサイズを調整するチュートリアル (xfs や ext4 などのさまざまなファイル システム用)

序文システムをインストールしたときに、パーティション領域を適切に割り当てませんでした。その後のメンテ...

HTML_PowerNode 入門 Java アカデミー

HTMLとは何ですか? HTML は Web ページを記述するために使用される言語です。 HTML ...