最近、問題に遭遇しました。モバイル端末の絵文字や一部の絵文字は 4 バイトですが、UTF-8 は 3 バイトです。インターネットで多くの解決策を検索し、最終的に独自の解決策を提供しました。現在のジレンマが、MySQL バージョンが 5.5.3 より前 (5.5.3 より前のバージョンでは utf-8mb4 エンコーディングを使用できない) である場合、MySQL のより高いバージョンを再インストールしてから、エンコーディングを取得する必要があります。 1. 現在のデータベースのバージョンを確認する 使用するコマンド: select version(); 現在のデータベースのバージョンが 5.5.3 より前の場合は、データベースを再インストールする必要があります。このバージョン以降の場合は、2 番目と 3 番目の手順をスキップしてください。 2. 現在のデータベースのデータをバックアップする ここで使用するデータベース可視化ソフトウェアは Navicat です。データベースの下にある対応するデータベースを右クリックし、「SQL ファイルのダンプ」を選択して「データと構造」を選択し、拡張子が .sql のデータベース ファイルをエクスポートしてハードディスクに保存します。新しいデータベース バージョンをインストールした後、データベースを選択して「SQL ファイルの実行」を右クリックし、データが失われないようにします。 3. 現在のデータベースを完全に削除する データベースを削除するのは非常に面倒で、きれいに削除されないこともあります。ここでは、私が参考にして便利だと思った方法をいくつか紹介します。 3.1 MySQLサービスを削除する コントロール パネル -> すべてのコントロール パネル項目 -> プログラムと機能、MySQL サーバーをアンインストールします。 3.2 mysqlディレクトリ内のすべてのファイルを削除する my.ini ファイルと mysql フォルダ内のすべてのファイルを削除します。一般的なインストール ディレクトリは C:\Program Files\MySQL です。 3.3 レジストリ情報の削除 「win」+ Rを同時に押してregeditと入力し、レジストリマネージャーに入ります。 消去: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL フォルダ 消去: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL フォルダ。 消去: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL フォルダ 上記のフォルダが存在しない場合、または存在しない場合は、無視してください。 3.4 隠しmysqlフォルダを削除する 通常は非表示になっています。Cドライブでこのディレクトリを検索すると、C:\ProgramData\MySQL\MySQL Server 5.7が見つかるはずです。 4 データベースmysql5.7をインストールする まずmysql5.7をダウンロードします。私はmsiバージョンを使用しました。インストール手順については詳しく説明しません。簡単に言うと、デフォルトのパスであるCドライブにインストールしました。インストール後、小さな黒いウィンドウを呼び出すために、システム環境変数を設定しました。 システム変数セクションでパスを選択し、パスの下にデータベースのインストールパスを入力します。binフォルダのパスに移動するだけです。このとき、小さな黒いウィンドウを呼び出してエンコード形式を表示します。 ステートメントは次のとおりです: SHOW VARIABLES LIKE 'character_set%'; デフォルトは utf-8 なので、表示される文字はすべて utf-8 になります。 5 エンコード形式を変更する まず、構成ファイル (my.ini) の設定を変更する必要がありますが、インストール ディレクトリにそのようなファイルが存在しないことがわかりました。 これが午後ずっと私を悩ませていたことです。後で情報を調べてみると、ファイルは C ドライブの隠しフォルダに隠されていることがわかりました。C ドライブで C:\ProgramData\MySQL\MySQL Server 5.7 を検索しました。 ファイルが見つかりました: my.iniファイルで設定を変更する [クライアント] デフォルトの文字セット = utf8mb4 [mysql] デフォルトの文字セット = utf8mb4 [mysqld] 文字セットクライアントハンドシェイク = FALSE 文字セットサーバー = utf8mb4 照合サーバー = utf8mb4_unicode_ci init_connect = '名前をutf8mb4に設定' 上記の太字の 2 つの項目は元のファイル設定にあり、その値は両方とも utf-8 であることに注意してください。そのため、これらの 2 つの項目を追加するときは、必ず元の項目を置き換えてください。そうしないと、MySQL は設定ファイルを読み取ることができず、サービスを開始できなくなります。 変更が完了したら保存し、データベースサービスを再起動します。サービスを再起動するためのアドレスは次のとおりです。 次に、小さな黒いウィンドウにさらに2つの文字セットコマンドを入力して確認します。 'character_set%'のような変数を表示します。 データベースの文字セットが変更されました 'collation%' のような変数を表示します。 データテーブルの文字セットも変更されました なお、utf8mb4 は utf-8 と互換性があるため、元のデータが文字化けする心配はありません。 MySQL バージョン 5.5.3 以前を使用している場合は、文字化けを回避し、エンコード セットを変更したくない場合は、MEDIUMBLOB 形式でデータを保存できますが、お勧めしません。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Linux で毎日データベースの自動バックアップを設定する方法
>>: Vue で Graphql インターフェースを実装する例
目次1. フロントエンド制御1. router.js ファイル内 (router.js にそれぞれ静...
CSSは複数のクラスにマッチする次の HTML タグ li、クラスはオープン スタイルです。私の要件...
序文:テーブルをクリアしたいときは、truncate ステートメントをよく使用します。ほとんどの場合...
1. 複数列レイアウトではなく、単一列レイアウトを使用する1 列のレイアウトにより、全体的な状況をよ...
エラー: Connection to blog0@localhost failed. [08001]...
ハッシュモード(デフォルト)動作原理:ウェブページのハッシュ値の変化を監視する—> onhas...
目次502 不正なゲートウェイ エラーの発生1. 502 不正なゲートウェイ エラーとは何ですか? ...
この記事では主にTomcatプロセスを記録し、TCP接続が多すぎることによるCPU使用率の過剰のトラ...
質問: 360ブラウザの互換モードなど、一部のブラウザでは、 <td style="...
GTID の利点により、従来のファイル POS ベースのレプリケーションを GTID ベースのレプリ...
序文ほとんどの方がMySQLとインデックスを使用したことがあると思いますが、適切なインデックスを作成...
目次モードパラメータハッシュ履歴ハッシュ履歴.push()ハッシュ履歴.replace()アドレスバ...
実行環境、Idea2020バージョン、Tomcat10、実行時にTomcat CatalinaLog...
MySQL 全文検索中国語ソリューション最近、会社のプロジェクトで、データベースで中国語を検索する機...
目次序文ミキシンMixin ノート (重複名)ローカルミックスイングローバル ミックスイン継承するミ...