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 サイトの他の関連記事を参照してください。