mysqlはデータベースのエンコーディングを変更します

王林
リリース: 2023-05-23 12:50:37
オリジナル
1485 人が閲覧しました

MySQL は、個人の Web サイトや中小企業だけでなく、大規模なアプリケーションやエンタープライズ レベルのソフトウェアにも使用できる、人気のあるリレーショナル データベース管理システムです。 MySQL は、多言語データ ストレージをサポートするためにデフォルトで UTF-8 エンコーディングを使用しますが、文字化けや中国語の文字を適切に表示できないなど、データベース エンコーディングの問題が発生することがあります。現時点では、これらの問題を解決するには、MySQL データベースのコーディングを変更する必要があります。

この記事では、MySQL データベースのエンコーディングを変更する方法を紹介します。まず、MySQL の文字セットとエンコーディングの概念を理解する必要があります。 MySQL の文字セットとは、utf8、gbk など、データベース内の文字とテキストを表す文字セットを指します。エンコーディングとは、これらの文字セットがコンピューター上での保存と送信にどのように使用されるかを指します。

ステップ 1: データベースをバックアップする

偶発的なデータ損失を防ぐために、変更を加える前に必ずデータベースをバックアップしてください。以下に示すように、mysqldump コマンドを使用してデータベース全体を SQL ファイルにバックアップできます。

mysqldump -u username -p dbname > backup.sql
ログイン後にコピー

ここで、username は MySQL ユーザー名、dbname はバックアップするデータベースの名前、backup .sql はバックアップ ファイル名です。

バックアップが完了したら、引き続き MySQL エンコーディングを変更できます。

ステップ 2: データベース エンコーディングを確認する

次のコマンドを使用して、現在のデータベースの文字セットとエンコーディングを確認します:

SHOW VARIABLES LIKE '%character%';
ログイン後にコピー

結果は次のとおりです:

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8mb4                    |
| character_set_connection | utf8mb4                    |
| character_set_database   | utf8mb4                    |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb4                    |
| character_set_server     | utf8mb4                    |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
ログイン後にコピー

ここで実行できます ご覧のとおり、現在のデータベースの文字セットとエンコーディングは両方とも utf8mb4 です。 gbk または他のエンコードに変更する場合は、次のステップに進む必要があります。

ステップ 3: データベースのエンコーディングを変更する

まず、変更するデータベース名を確認する必要があります。データベース mydb のエンコードを gbk に変更するとします。次のコマンドを使用できます。

ALTER DATABASE mydb CHARACTER SET gbk;
ログイン後にコピー

次のコマンドを使用して、データベース エンコードが正常に変更されたかどうかを確認できます。

SHOW CREATE DATABASE mydb;
ログイン後にコピー

このうち、mydb は変更するデータベースの名前です。出力に「DEFAULT CHARACTER SET gbk」と表示された場合は、データベースのエンコードが正常に変更されたことを意味します。

データベースにデータ テーブルがすでに存在する場合、その文字セットとエンコーディングも新しいターゲット エンコーディングに変更する必要があります。次のコマンドを使用して、単一のデータ テーブルを変更できます。

ALTER TABLE mytable CONVERT TO CHARACTER SET gbk;
ログイン後にコピー

ここで、mytable は変更するデータ テーブルの名前、gbk はターゲット エンコーディングです。

複数のデータ テーブルのコーディングを同時に変更する必要がある場合は、次のコマンドを使用してバッチで変更できます。

ALTER DATABASE mydb CHARACTER SET gbk;
ALTER TABLE mytable1 CONVERT TO CHARACTER SET gbk;
ALTER TABLE mytable2 CONVERT TO CHARACTER SET gbk;
...
ログイン後にコピー

データ テーブルでは、データ テーブル内のすべての列のコーディングが変更されます。文字セットとエンコーディングは、データ テーブル内の元のデータが上書きされることを意味するため、変更を行う前に必ずデータをバックアップしてください。さらに、これらのデータ テーブルをクエリする場合は、その文字セットとエンコーディングに一致するエンコーディングを使用する必要もあります。

ステップ 4: MySQL を再起動する

データ テーブルの文字セットとエンコードを変更した後、データベースの変更が有効になっていることを確認するために MySQL サービスを再起動する必要があります。次のコマンドを使用して MySQL サーバーを再起動できます:

sudo systemctl restart mysql
ログイン後にコピー

このコマンドを実行するには、root ユーザーのパスワードを入力する必要があります。

概要

MySQL データベースのエンコーディングを変更すると、文字セットとエンコーディングに関連する問題を解決できます。このプロセスは、データをバックアップし、文字セットとエンコーディングを確認し、データベース エンコーディングを変更し、MySQL を再起動することで完了します。データベースのエンコーディングを変更すると、データベース内のすべての既存のデータ テーブルに影響するため、操作前に必ずデータをバックアップしてください。

以上がmysqlはデータベースのエンコーディングを変更しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート