備忘録的に書いておきます。
PHPで開発をしている人の多くは、XAMPPを導入していると思います。
XAMPPでMySQLを起動して、MySQLのコマンドを叩きたいときに少し苦労しました。
ちなみに動作環境は、Widows 7(64 bit)です。Macとかは知らね。
一般的に、XAMPPでMySQLを操作するときは、XAMPPのコントロールパネルでApacheとMySQLを起動して、MySQLのAdminボタン(図1の赤枠で囲ったボタン)をクリックしてphpMyAdminを表示させて操作するものと思われます。
図1 XAMPP Control Panelのスクリーンキャプチャ
ただ、わざわざApacheを起動しなくてもいいなと思う時や、コマンドラインでの入力が好きな人にはすこし不便かもしれません。
以下に、XAMPPで起動したMySQLをコマンドプロンプトで起動する方法を記述しておきます。Apacheは起動しておく必要はありません。
簡単です。
1.XAMPPのコントロールパネルから MySQLのStartボタンをクリック。
2.コマンドプロンプトを起動(Windowsボタン→cmd→Enter)して、
cd C:\xampp\mysql\bin
のコマンドを打つ。パスは、XAMPPのインストールフォルダに合わせてパスは変えてください。デフォルトではこのパスだったはず。。
3.mysql -u root -p
のコマンドを打つ。Passwordを聞かれるので、設定したパスワードを入力してEnter。
rootのところは、MySQLにログインしたいアカウントに適宜変更してください。
以上で、MySQLをコマンドプロンプトから操作できるようになります。
と、ここまでで終われば、苦労はしないのですが、我々は日本人。このままでコマンドを叩くと、selectで表示させた日本語が文字化けしたり、insertで挿入した日本語が文字化けします。
嗚呼!半角文字で暮らせる国に生まれたかった!文字コードとの戦いはSEにとっては避けられない戦いです。
それで、どうすれば良いのかというと、MySQLにログインしたあと、次の二つのコマンドをうってください。
一般的なところで書かれている(例えばこことか)、XAMPPを導入した際に文字コードをUTF-8に変更してくださいねという作業は既に終わっているものと想定します。
SET character_set_results = sjis;
SET character_set_client = sjis;
1つ目が、selectでテーブルの内容を表示させたいとき文字化けが文字化けしないようにするためのコマンド。
2つ目が、insert等で日本語を挿入したときに文字化けしないようにするためのコマンドです。
なぜ、このようなことが起きるのかというと、コマンドプロンプトの文字コードがMS932(要するにSJIS)だからです。(てかMS932ってなんだし。普通にSJISでいいし)
色々調べて、片方のコマンドは載っていても両方のコマンドが載っていなかったりしたので、備忘録的に書いてみました。
これまでSE的な内容書いてなかっただけにSEっぽい内容ですね!(初歩的なことだけど)