ホームページ  >  記事  >  データベース  >  mysqlデータベースエンコーディングを変更する

mysqlデータベースエンコーディングを変更する

WBOY
WBOYオリジナル
2023-05-20 09:49:071493ブラウズ

MySQL は、さまざまな Web サイト、データ ウェアハウス、エンタープライズ アプリケーションで広く使用されているオープン ソース データベース管理システムです。 MySQL では、エンコード形式は、データベースに保存されるテキスト コンテンツの内部バイナリ保存方法を指します。

データベースに中国語やその他の英語以外の文字などの特殊文字が保存されている場合は、これらの文字を正しく保存および取得できるように、正しいエンコード形式を設定する必要があります。この記事では、MySQL データベースのエンコード形式を変更する方法を紹介します。

ステップ 1: データベースのバックアップ

データベースの変更を実行する前に、データの損失や回復不能な損傷を防ぐために必ずデータベースをバックアップしてください。 MySQL が提供する mysqldump ツールを使用してデータベースをバックアップできます。コマンドは次のとおりです:

mysqldump -u [username] -p [database_name] > backup.sql

ここで、[username] はデータベースのユーザー名、[database_name] はバックアップするデータベースの名前です。 > バックアップする場合は、バックアップの内容をbackup.sqlファイルにリダイレクトすることを意味します。

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

現在の MySQL データベースのデフォルト エンコーディングを表示するには、次のコマンドを実行できます。

SELECT @@character_set_database;

このコマンドは、現在の MySQL データベースのエンコーディングを表示します。データベースのデフォルトのエンコード形式。

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

データベース エンコーディングを変更するには、次のステップを実行する必要があります。

  1. MySQL 構成ファイル (通常は / etc/my.cnf) を選択して開きます。ファイルが見つからない場合は、ターミナルで次のコマンドを実行してファイルを見つけることができます:
find / -name my.cnf
  1. 次の行を構成ファイルに追加します:
[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
collation-server = utf8mb4_unicode_ci
character-set-server = utf8mb4

これらの設定 すべての MySQL クライアントとサーバーが正しいエンコード形式を使用していることを確認します。

  1. 構成ファイルを保存して閉じます。
  2. 変更を有効にするために MySQL サーバーを再起動します:
sudo service mysql restart
  1. 次のコマンドを実行して、設定が正常に適用されたかどうかを確認します:
SELECT @@character_set_database;

正しく適用された場合、出力は「utf8mb4」となります。

ステップ 4: 既存のテーブルを新しいエンコーディングに変換する

テーブルがデータベースにすでに存在する場合、データを正しく保存するには、テーブルを新しいエンコーディング形式に変換する必要があります。

  1. 次のコマンドを実行して、アップグレードする必要があるすべてのテーブルの SQL ステートメントを生成します:
SELECT CONCAT('ALTER TABLE `', table_schema, '`.`', table_name, '` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;') AS execute_sql
FROM information_schema.tables
WHERE table_schema = '[database_name]' AND table_type = 'BASE TABLE'
ORDER BY table_name DESC;

ここで、[database_name] はアップグレードする必要があるデータベースの名前です。変換される。

  1. 結果をターミナルにコピーし、実行してすべてのテーブルを新しいエンコーディングに変換します。以下に示すように:
ALTER TABLE `table1` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE `table2` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
...

ステップ 5: 変更をテストする

すべてのテーブルを変換した後、変更が成功したかどうかをテストする必要があります。次のコマンドを実行して、すべてのテーブルのエンコード形式が更新されていることを確認します。

SHOW FULL COLUMNS FROM [table_name];

ここで、[table_name] はテストするテーブルの名前です。このコマンドはテーブルの列とメタデータを表示し、古いエンコード形式のデータがテーブル内に存在するかどうかを確認します。結果が正しく表示されれば、変更は成功しています。

結論

MySQL のデータベース エンコード形式を変更すると、特殊文字を正しく保存および取得できるようになり、多言語 Web サイトやアプリケーションを完全にサポートできるようになります。この記事で説明する手順に従うことで、MySQL データベースのエンコード形式を簡単に変更し、データの損失や破損を避けることができます。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。