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

mysqlのエンコーディングを変更する

PHPz
PHPzオリジナル
2023-05-20 12:04:381888ブラウズ

MySQL は、複数の文字エンコーディングをサポートする一般的に使用されるリレーショナル データベース管理システムです。実際に使用していると、特定の文字が正常に表示されない場合があり、その場合はMySQLのエンコード設定を変更する必要があります。この記事では、MySQL のエンコードを変更する方法を説明します。

1. MySQL エンコーディングを理解する

MySQL エンコーディングとは、文字セットや並べ替えルールなどのデータの保存方法を指します。 MySQL は複数の文字セットをサポートしており、より一般的に使用される文字セットは UTF-8、GBK、Latin1 などです。並べ替えルールでは、大文字と小文字の区別、文字の重みなど、文字間の比較ルールを指定します。

2. 現在のエンコード設定を確認する

エンコードを変更する前に、まず現在のエンコード設定を知る必要があります。次のコマンドを使用して表示できます。

show variables like '%char%';

このコマンドは、現在の MySQL 文字セットと照合設定を表示します。より一般的に使用される変数には、character_set_client、character_set_connection、character_set_database、character_set_results、character_set_server などがあります。

3. エンコード設定の変更

  1. 設定ファイルの変更

MySQL のエンコード設定の変更は、設定ファイルを変更することで実現できます。 MySQL 設定ファイル my.cnf (my.ini と呼ばれることもあります) を見つけて、次の内容を追加します。

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

その中で、default-character-set は、クライアントと MySQL のデフォルトの文字セットが UTF- であることを指定します。 8 では、collat​​ion-server は照合ルールを utf8_unicode_ci として指定し、character-set-server はサーバー側の文字セットを UTF-8 として指定します。 init-connect は、接続の確立時に実行される SQL ステートメントを指定します。これは、文字セットを UTF-8 に設定するために使用されます。

  1. 既存のデータベースを変更する

既存のデータベースの文字セットを UTF-8 に変更する必要がある場合は、次の手順に従います。

(1) 元のデータベースをバックアップします

mysqldump コマンドを使用して、元のデータベースをファイルにバックアップします:

mysqldump -u root -p database > database.sql

(2) データベースの文字セットを変更します

次のコマンドを使用してデータベースをバックアップします。 のテーブルの文字セットが UTF-8 に変更されます。

ALTER TABLE tablename CONVERT TO CHARACTER SET utf8;

ここで、tablename は文字セットを変更する必要があるテーブルの名前です。

(3) バックアップ ファイルを復元する

次のコマンドを使用して、バックアップ ファイルをデータベースに復元します:

mysql -u root -p database < database.sql

4. 概要

MySQL エンコーディングデータが正しく表示および処理されることを確認することは非常に重要です。この記事では、MySQL のエンコード設定を表示する方法と、構成ファイルを変更して既存のデータベースに変更を加えて設定を実装する方法について説明します。実際には、必要に応じて適切な文字セットと照合順序を選択し、適切にテストおよび検証する必要があります。

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

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