この記事では、MySQLデータベースの文字セットをUTF-8エンコーディング(Unicodeとも呼ばれます)に変換する方法について説明します。 UTF-8文字エンコードセットは、さまざまな言語の多くのアルファベットと文字をサポートしています。
MySQLはUTF-8文字エンコーディングセットをサポートしていますが、データベースおよびテーブルの作成時にデフォルトの文字セットとして使用されないことがよくあります。その結果、多くのデータベースはラテン文字セットを使用しますが、アプリケーションによっては制限される可能性があります。
MySQLデータベースまたはテーブルが現在使用している文字エンコードセットを判別するには:
- A2ホスティングSSHアカウントにログインします。
- コマンドラインで、次のコマンドを入力し、usernameを自分のusernameに置き換えます。
mysql -u username -p
- [パスワードの入力]プロンプトで、パスワードを入力します。正しいパスワードを入力すると、mysql>プロンプトが表示されます。
-
特定のデータベースの現在の文字エンコードセットを表示するには、mysql>プロンプトで次のコマンドを入力します。 dbnameをデータベース名に置き換えます。
SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name = "dbname";
-
データベース内の特定のテーブルの現在の文字エンコードセットを表示するには、mysql>プロンプトで次のコマンドを入力します。 dbnameをデータベース名に置き換え、tablenameをテーブルの名前に置き換えます。
SELECT CCSA.character_set_name FROM information_schema.`TABLES` T,information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA WHERE CCSA.collation_name = T.table_collation AND T.table_schema = "dbname" AND T.table_name = "tablename";
- mysqlを終了するには プログラムで、mysql>プロンプトで\qと入力します。
文字エンコードセットをUTF-8に変換するには:
- A2ホスティングSSHアカウントにログインします。
- .my.cnfという名前のテキストファイルを作成します 。これを行うには、VimやNanoなどのテキストエディタを使用できます。この手順は、Nanoの使用方法を示しています。コマンドラインで、次のコマンドを入力します:
nano .my.cnf
-
次の行をファイルに追加し、usernameをusernameに、passwordをpasswordに置き換えます(パスワードが引用符で囲まれていることを確認してください)。
[client] user=username password="password"
- 編集が完了したら、Ctrl + Xを押し、yと入力してファイルを保存し、Enterキーを押します。
-
指定したデータベース内のすべてのテーブルの文字セットエンコーディングをUTF-8に変更するには、コマンドラインで次のコマンドを入力します。 dbnameをデータベース名に置き換えます。
mysql --database=dbname -B -N -e "SHOW TABLES" | awk '{print "SET foreign_key_checks = 0; ALTER TABLE", $1, "CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; SET foreign_key_checks = 1; "}' | mysql --database=dbname
-
コマンドが終了したら、次のコマンドを入力して mysqlを開始します プログラム:
mysql
-
データベース自体の文字セットエンコーディングをUTF-8に変更するには、mysql>プロンプトで次のコマンドを入力します。 dbnameをデータベース名に置き換えます。
ALTER DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;
- mysqlを終了するには プログラムで、mysql>プロンプトで\qと入力します。
-
.my.cnfを削除するには ファイルの場合、コマンドラインで次のコマンドを入力します。
rm .my.cnf
- 文字セットエンコーディングがUTF-8に設定されていることを確認するには、上記の現在の文字エンコーディングセットの決定手順の手順に従います。
UTF-8とUnicodeの詳細については、http://en.wikipedia.org/wiki/UTF-8にアクセスしてください。