mysql5.7 のエンコーディングを utf8mb4 に設定する方法

mysql5.7 のエンコーディングを utf8mb4 に設定する方法

最近、問題に遭遇しました。モバイル端末の絵文字や一部の絵文字は 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%'のような変数を表示します。

データベースの文字セットが変更されました


'collat​​ion%' のような変数を表示します。

データテーブルの文字セットも変更されました

なお、utf8mb4 は utf-8 と互換性があるため、元のデータが文字化けする心配はありません。

MySQL バージョン 5.5.3 以前を使用している場合は、文字化けを回避し、エンコード セットを変更したくない場合は、MEDIUMBLOB 形式でデータを保存できますが、お勧めしません。

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

以下もご興味があるかもしれません:
  • MySQL データベースのエンコーディングを utf8mb4 に変更する方法
  • utf8mb4 エンコーディングを使用した Spring Data Jpa Mysql サンプル コード
  • MySQL の絵文字テーブル ストレージのエラーに対処する方法 [エンコードを utf8mb4 に変更]
  • MySQL エンコーディング utf8 および utf8mb4 utf8mb4_unicode_ci および utf8mb4_general_ci

<<:  Linux で毎日データベースの自動バックアップを設定する方法

>>:  Vue で Graphql インターフェースを実装する例

推薦する

jQuery の CSS スタイル属性 css() と width() の完全ガイド

目次1. css() の基本的な使用法: 1.1 CSSプロパティを取得する1.2 CSSプロパティ...

divとtableの選択と組み合わせ方について簡単に説明します

ページレイアウトは、Web ページを扱い始めた頃からずっと気にかけていたことです。初期のテーブル構造...

Linuxフラッシュのインストール方法

Linuxにフラッシュをインストールする方法1. Flashの公式サイトにアクセスし、ダウンロードを...

WindowsでのMySQLインストールチュートリアルの詳細な紹介

目次1. ダウンロードする前に理解しておくべき概念2. 必要なバージョンを選択する3. MySQLサ...

Tencent Cloud Serverの構築方法を説明します(グラフィックチュートリアル)

この記事は元々ブロガーのWeiwei Miaoによって書かれたものです。ブログホームページ: htt...

Linux コマンドラインで電卓を使用する 5 つのコマンド

みなさんこんにちは。私は梁旭です。 Linux を使用するときに、計算を行う必要がある場合があり、そ...

MySQL データベースのマスター スレーブ分離のサンプル コード

導入MySQL データベースの読み取りと書き込みの分離を設定すると、データベースに対する書き込み操作...

Vmwareでディスクを追加する方法:ディスクを拡張する

この記事では、ディスクを追加または拡張して、Vmare で有効にする方法について説明します。シナリオ...

MySQL データベースは何をしますか?

MySQL はリレーショナル データベース管理システムです。リレーショナル データベースは、すべて...

Nginx+Tomcat 負荷分散クラスタのインストールと構成のケースの詳細な説明

目次序文1. Nginx+Tomcat 2. Nginxサーバーを構成する3. Tomcatアプリケ...

Vueは2つのルーティング許可制御メソッドを実装しています

目次方法 1: ルーティング メタ情報 (meta)方法 2: ルーティング テーブルを動的に生成す...

tomcat をインストールし、Linux で Web サイトを展開します (推奨)

jdk をインストールします: Oracle 公式ダウンロード https://www.oracl...

MySQL 8.0 バージョンで getTables がすべてのデータベース テーブルを返す問題の簡単な分析

序文この記事では、主にライブラリ内のすべてのテーブルを返すMysql8.0ドライバgetTables...

nginxディレクトリパスをリダイレクトする方法

ドメイン名に続くパスがデフォルトの Web ディレクトリではなく、ローカル ディスク上の他のディレク...

React プロジェクトにおける axios カプセル化と API インターフェース管理の詳細な説明

目次序文インストール導入環境の切り替え傍受を要求するレスポンスインターセプションAPIの統合管理要約...