リア充爆発日記

You don't even know what ria-ju really is.

CircleCIでMySQL5.6を使う方法

追記)コメントで教えてもらったけど、今は設定でubuntuのバージョンが変更でき、そこではMySQL5.6などがプリインストールされるので、もうこの記事読まなくていいです。
Ubuntu 14.04 (Trusty) - CircleCI

ただ、1つ言いたいのは、「使えるようになったら連絡するよ!」ってサポートは言ってたけど、それはウソだったということである。CircleCIまだ安いとは思えないし、もっと競合にはがんばってもらいたい。追記終わり



前回、CircleCIでMySQL5.6が使えなくて困った、というエントリを書いた。
http://d.hatena.ne.jp/ria10/20150215/1424006550

で、CircleCIに問い合わせてたんだけど、返事がきて一応は解決したのでその内容のメモ。



端的に言うと"sudoを使えばMySQL5.6も行けるよ"という内容だった。よく探すとドキュメントもあった。
https://circleci.com/docs/installing-custom-software

circle.ymlに以下の内容を足す。

dependencies:
  pre:
    - sudo apt-add-repository -y 'deb http://ppa.launchpad.net/ondrej/mysql-experimental/ubuntu precise main'
    - sudo apt-get update; sudo DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server-5.6
    - echo '[mysqld]' | sudo sh -c 'cat >>  /etc/mysql/my.cnf'; echo 'innodb_ft_min_token_size = 2' | sudo sh -c 'cat >>  /etc/mysql/my.cnf'; sudo /etc/init.d/mysql restart

最後の1行は、Full-Text indexを使うためのものなので、MySQL5.6を使いたいだけだったらいらない。
http://d.hatena.ne.jp/ria10/20140107/1389071672

ただ、これ、MySQLをインストールする時間が毎回かかる(45秒前後)。キャッシュはされない。

毎回45秒はでかいよねー。CIなので毎回待つわけじゃないけど、1日30回テスト回るとMySQLのインストール時間は1ヶ月で45 * 30 * 20 = 7.5Hにもなるんですよ。奥さん。

とりあえず、CircleCIにMySQL5.6のプリインストールの予定がないかも聞いとくわ。

追記)返事きた。予定あるらしい。が、いつとは言えないとのこと。つまり、彼らがその気になればMySQL5.6のサポートは10年後、20年後にすることも可能だということ・・・!

Hi ria10,
We do have plans to have MySQL 5.6 be preinstalled, although I'm not sure what the timeline is for that. We'll be sure to let you know one it's officially supported.


追記2)
mysqlの再起動は/etc/init.d/mysql restartじゃなくて、service mysql restartにしないと再起動がスムーズにいかず、テストがコケることがある。細かいことはわかっていない。