コマンドプロンプトから接続する場合の文字化け対策(文字コードの変更)

広告

コマンドプロンプトからMySQLへ接続する場合、コマンドプロンプトで使用する文字コードをUTF-8にすることができません。(chcp 65001とすることで文字コードだけは変更できるのですが、変更した環境で日本語フォントが選択できないため結局使うことができません)。そこでMySQLコマンドラインツールを使用する場合のデフォルト文字コードとしてcp932を設定する方法について解説します。

※このページに記載している内容が現時点でも正しいかどうか確認が取れていません。あらかじめご了承下さい。

※文字コードの設定について詳しくは「文字コードの設定」を参照して下さい。

ではmy.iniファイルをテキストエディタで開いて下さい。55行目付近に次の記述があります。

[client]
no-beep

# pipe
# socket=0.0
port=3306

[mysql]

default-character-set=utf8

[client]の後に書かれているのが全クライアントで共通の設定を記述するところです。また[mysql]の後に書かれているのがコマンドプロンプト経由で接続する場合に使用される設定を記述するところです。

ではこの部分を次のように変更します。

[client]
no-beep

# pipe
# socket=mysql
port=3306
default-character-set=utf8

[mysql]

default-character-set=cp932

[client]の部分に「default-character-set=utf8」を追加し、[mysql]の部分に記述されていた部分を変更しています。

設定変更後にMySQLサーバを再起動して下さい。

では確認を行います。MySQLサーバを起動した状態でコマンドプロンプトからMySQLに接続し、次のように実行して下さい。

show variables like 'char%';

※MySQLコマンドラインツールを使った接続については「MySQLに接続するユーザー名とパスワードの指定」を参照して下さい。

設定変更前に実行した時は次のように表示されていました。

p7-1

設定変更後にに実行すると次のように表示されます。

p7-2

上記のように表示されれば設定は完了です。

( Written by Tatsuo Ikura )