ホームページ >データベース >mysql チュートリアル >mysqlで文字エンコーディングを変更する方法
MySQL は、人気のあるリレーショナル データベース管理システムです。データベースやテーブルを作成するときは、通常、それらの文字セットと文字エンコーディングを定義します。データベースとテーブルの文字エンコーディングが一致しない場合、データの一部またはすべてが失われる可能性があります。したがって、文字エンコーディングを正しく設定することが非常に重要です。この記事では、MySQL で既存のデータベースやテーブルの文字コードを変更する方法を説明します。
文字エンコーディングを変更する前に、まず現在のデータベースまたはテーブルで使用されている文字エンコーディングを理解する必要があります。これは、次の SQL ステートメントで表示できます。
SHOW CREATE DATABASE database_name;
SHOW CREATE TABLE table_name;
ここで、database_name
と table_name
は、それぞれ表示するデータベース名とテーブル名を表します。上記のコマンドを実行すると、結果で文字エンコーディング情報を確認できます。
通常の状況では、データベースの文字エンコードを変更する必要はありません。本当に変更する必要がある場合は、次の手順に従ってください:
sudo systemctl stop mysql
mysqldump -u root -p --opt --default-character-set=utf8mb4 dbname > dbname_backup.sql cp -a /var/lib/mysql /var/lib/mysql_backup
このうち、dbname
はバックアップするデータベースの名前を表します。
/etc/mysql/my.cnf
を変更します。 次のコンテンツを [mysqld]
ブロックの下に追加します:
[mysqld] character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci
対応する構成項目が既に存在する場合は、対応する値を直接変更するだけです。 utf8mb4
文字セットと utf8mb4_unicode_ci
照合順序を使用すると、より多くの言語の文字をサポートできます。
sudo systemctl start mysql mysql -u root -p ALTER DATABASE dbname CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
このうち、dbname
は文字コードを変更するデータベース名を表します。
テーブルの文字エンコードと並べ替えルールを変更する場合は、次の手順に従います。
mysqldump -u root -p --opt --default-character-set=utf8mb4 dbname tablename > tablename_backup.sql
このうち、dbname
と tablename
は、それぞれバックアップ対象のデータベース名とテーブル名を表します。
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
このうち、table_name
は文字コードを変更するテーブル名を表します。
上記のコマンドを実行すると、MySQL はテーブル内のすべての文字タイプ フィールドのエンコードとソートのルールを utf8mb4
および utf8mb4_unicode_ci
に変更します。
テーブル内のフィールドの文字エンコードのみを変更する場合は、次の手順に従います。
mysqldump -u root -p --opt --default-character-set=utf8mb4 dbname tablename > tablename_backup.sql
このうち、dbname
と tablename
は、それぞれバックアップ対象のデータベース名とテーブル名を表します。
ALTER TABLE tablename MODIFY COLUMN column_name varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
このうち、tablename
と column_name
は、それぞれ文字エンコーディングを変更するテーブル名とフィールド名を表します。
上記のコマンドを実行すると、MySQL はこのフィールドの文字エンコーディングと照合順序を utf8mb4
および utf8mb4_unicode_ci
に変更します。
文字エンコーディングを正しく設定することは、データの保存とクエリにとって非常に重要です。 MySQL では、上記の方法で既存のデータベース、テーブル、フィールドの文字エンコーディングと照合規則を変更できます。なお、上記の操作を行う前に、データの損失を防ぐために、元のデータまたはデータベース定義ファイルを必ずバックアップしてください。
以上がmysqlで文字エンコーディングを変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。