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はカウンターのシンプルな生成を実装します

推薦する

Linux 環境で crontab コマンドを使用して、スケジュールされた定期的な実行タスクを設定します (PHP 実行コードを含む)

この記事では、Linux 環境で crontab コマンドを使用して、タスクの定期的な実行をスケジュ...

HTML テーブルタグチュートリアル (35): 列間属性 COLSPAN

複雑なテーブル構造では、一部のセルが垂直方向に複数のセルにまたがるため、列間属性 COLSPAN を...

Navicatを使用してクラウドサーバーデータベースにリモート接続する方法

秘密鍵を開かずにリモート サーバーのデータベースに接続するのは非常に便利です。新しい接続でデータを入...

JavaScript 操作要素の例

操作要素の詳細については、前回の記事を参照してください。JavaScript WebAPI、DOM、...

MySQL 最適化接続最適化

記事「MySQL の最適化: キャッシュの最適化」では、システムによってコンパイルされた変数値、また...

Mysql 中国語ソートルールの説明

MySQL を使用する際、フィールドをソートしたりクエリしたりすることがよくあります。通常は、中国語...

Django は Pillow を使用して検証コード機能を簡単に設定します (Python)

1. モジュールをインポートし、検証状態を定義する PIL から Image、ImageDraw、...

Nginx ドメイン名 SSL 証明書の構成 (Web サイトの http を https にアップグレード)

序文HTTP と HTTPS日常生活でよく使われる URL は、おおまかに次の 2 種類に分けられま...

Linux ディレクトリ切り替え実装コード例

ファイルの切り替えは Linux でよく行われる操作です。Linux を初めて学ぶときに最初に触れる...

Vueプロジェクトの支払い機能コードの詳細な説明

1. Alipay方式: Alipay メソッド: Alipay をクリックして支払い、バックエンド...

HTML テーブル マークアップ チュートリアル (14): テーブル ヘッダー

<br />HTML 言語では、タグを使用してテーブルにタイトルを自動的に追加できます。...

mysql5.7.18のインストールと初期パスワードの変更方法

CentosでのMySQLのインストールについては、以前の記事を参照してください。 Centos7....

Linux の圧縮および解凍コマンドの紹介

目次一般的な圧縮形式: gz .bz2 .xz .zip一般的に使用されるアーカイブは圧縮を必要とす...

Nginx リバース プロキシを使用してクロスドメイン問題を解決する方法の詳細な説明

質問前回のクロスドメイン リソース共有に関する記事では、ドメイン間で Cookie を送信する場合、...