Bash on Windows で MySQL を動かしてみる

いま Windows が熱いですね!
いや正確には Windows 10 Insider Preview で、Windowsj上で Linux が動くようになり、OSSやインフラ系のエンジニアさん達に俄然注目浴びてるわけですが、MySQLユーザーの私も、ちょうど SoftwareDesign 6月号bash 大特集と MySQL の特集記事読んでるうち、
「むむ?これはもしかして Bash on WindowsMySQL を操作せよということではないか?!」
と、悪い心がむくむく湧いてきてしまったので、早速試してみることにいたしました。

Bash on Windows を有効化する

よいこのみんなはとっくに Bash on Windows を有効化してると思うので、この辺りは割愛させて頂きます。まだの方は、以下の記事など参考に、ぜひ茨の道に足を踏み入れてください。
Bash on Ubuntu on Windowsをインストールしてみる(Windows 10 build 14316)

なお Insider Preview はあくまで最新機能の評価版のため、想定外の事態に遭遇することがたびたびありますが、それも致し方ないと太平洋のごとき大らかな心を持ち、Microsoft にガンガンフィードバックを送ってやりませう

MySQL サーバーをインストールする

次は MySQL のインストールです。SoftwareDesign 6月号の記事を参考に、最新版 MySQL5.7 をインストールしてみました。
スタートメニューから「Bash on Ubuntu on Windows」を探し、クリックして bash を起動します。wget コマンドで、で、MySQL の公式サイトから apt リポジトリの最新バージョンをダウンロードします。ちなみに以下のリポジトリは 2016/06/22 現在のものです。最新のリポジトリhttps://dev.mysql.com/downloads/repo/apt/ で調べてください。

wget https://dev.mysql.com/get/mysql-apt-config_0.7.3-1_all.deb


dpkg コマンドでダウンロードしたリポジトリをインストールします。

sudo dpkg -i mysql-apt-config_0.7.3-1_all.deb


どのツールとバージョンをインストールするか尋ねられるので、最初のダイアログでは「MySQL Server」、次のダイアログでは「mysql-5.7」を選択し、<了解>をEnter で次に進みます。


MySQLサーバーのインストールが完了したら、次は mysql のインストールです。apt-get update 完了後に mysql をインストールします。

sudo apt-get update

sudo apt-get install -y mysql-community-server

インストールが完了したら、service コマンドで mysql を起動します。

sudo service mysql start

これで、「MySQL Community Server 5.7.13 is started」と出力されれば、MySQL の利用が可能になります。

MySQL の日本語化対応

次は、MySQL の日本語化対応です。

sudo vi /etc/mysql/my.cnf

で、my.cnf を編集します。client セクションとmysqld セクションに以下の設定を追加します。

[client]
・・・・・・
default-character-set = utf8

[mysqld]
・・・・・・
character-set-server = utf8

編集が完了したら、service コマンドで mysql を再起動します。

sudo service mysql restart

これでMySQLで扱われる文字コードUTF-8 になりました。最近は UTF-8 で扱えない文字もたまに見かけるので utf8mb4 を指定してもいいかもしれませんね。

MySQL を動かしてみる

ここまでできたなら、実際にデータベースとテーブルを構築して、動作確認してみたいと思います。まずは MySQL に接続します。

mysql -u root -p[パスワード]


プロンプトが 「mysql>」に変わったなら MySQL サーバーに接続に成功です。お次は DB とテーブルを構築します。

私はSQL実践入門読書会に参加してますが、この読書会で動かしてるのが、SQL実践入門サポートページで公開されてるサンプルコード。こちらは標準クエリで書かれてるので、MySQL でも動作します。今回はこれを借用させていただきます。

SQL実践入門──高速でわかりやすいクエリの書き方 (WEB+DB PRESS plus)

SQL実践入門──高速でわかりやすいクエリの書き方 (WEB+DB PRESS plus)


まずは先頭にDB の構築文を追加して、さらにテーブルについては 今回 MySQL のため、あえて InnoDB エンジンと文字コードUTF-8 を指定しときます。


あとはサンプルのINSERT 文を流し込んで SELECT してみる・・・・するとこうなる。


現状では Widnwos 側からこの MySQL に接続する方法はないようですが、それでも仮想環境設けたりサーバーに接続することなく、自環境だけで MySQL のクエリや MYSQL サーバーの動作確認ができるのはかなり便利だと思います。ぜひ皆さんも Bash on WindowsMySQL をインストールしてみてはいかがでしょうかw