XAMPPのMySQLで文字コードを変更する
XAMPPのMySQLで文字コードをUTF-8に変更する方法です。XAMPP向けですが、Windows版のMySQLでも文字コードの変更方法は同じはずです。
コマンドラインツールの使用方法
- XAMPP Control PanelでMySQLをStartします
- コマンドプロンプトを起動し、以下のフォルダに移動します
XAMPPインストールフォルダ\mysql\bin
(例:cd C:\xampp\mysql\bin
) - 以下のコマンドでMySQLのコマンドを起動します
mysql -u root -p
終了は以下のいずれか。
exit
\q
quit
データベース一覧の表示
show databases;
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| phpmyadmin |
| mytest |
| test |
+--------------------+
6 rows in set (0.00 sec)
データベースの作成
create database database_name;
MariaDB [(none)]> create database my_test_second;
Query OK, 1 row affected (0.01 sec)
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| my_test_second |
| mysql |
| performance_schema |
| phpmyadmin |
| mytest |
| test |
+--------------------+
7 rows in set (0.00 sec)
データベースの削除
drop database database_name;
MariaDB [(none)]> drop database my_test_second;
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| phpmyadmin |
| mytest |
| test |
+--------------------+
6 rows in set (0.00 sec)
参照するデータベースの変更
use データベース名;
文字コードを確認する
show variables like "chara%";
システム変数 | 内容 | |
---|---|---|
クライアント側 | character_set_client | クライアントが送信するクエリーの文字コード |
クライアント側 | character_set_connection | クライアントから受け取った文字の変換先文字コード |
サーバー側 | character_set_database | デフォルトデータベースの文字コード |
- | character_set_filesystem | ファイルシステムの文字コード |
クライアント側 | character_set_results | クライアントへ送信する結果の文字コード |
サーバー側 | character_set_server | サーバーの文字コード |
サーバー側 | character_set_system | サーバーで使用される文字コード(utf8固定) |
- | character_sets_dir | 文字コードがインストールされているディレクトリ |
文字コードをUTF-8に変更する
XAMPPインストールフォルダ\mysql\bin\my.ini
を編集します。
XAMPPのコントロールパネルから開く場合はMySQLのConfigボタン>my.ini
サーバー側
- [mysqld]セクションにて、コメントアウトされているcharacter_set_server=utf8を有効にします
[mysqld]
省略
character_set_server=utf8
- XAMPP Control PanelでMySQLを再Startします
[変更後]
ただし、character_set_databaseは後から変更されないため変更したい場合はデータベースを作成し直す必要があります。
[データベース再作成後]
クライアント側
- [client]セクションに、character_set_client = utf8を追加します
- [mysqld]セクションにて、コメントアウトされているskip-character-set-client-handshakeを有効にします
[client]
省略
character_set_client = utf8
[mysqld]
省略
skip-character-set-client-handshake
- XAMPP Control PanelでMySQLを再Startします