Mac環境の Rails 4 で MySQL を利用する手順


Railsのアプリケーションで MySQL を利用する手順のメモです。

# 前提

- ローカルの Mac に 構築した Rails から、同じくローカルに立てた MySQL へ接続します。
	- OS のバージョンは `Mac OS X 10.9.4 (Mavericks)` です。
	- Ruby のバージョンは `2.1.2`、Railsのバージョンは `4.1.1` です。
- Mac に MySQL をインストールした手順についてはこちらをご覧ください。
	- [Mac へ MySQL を Homebrew でインストールする手順](http://qiita.com/hkusu/items/cda3e8461e7a46ecf25d)

# 手順

- Railsアプリケーションを `-d mysql` オプションをつけて生成します。

	```shell
	$ bundle exec rails new hoge-app --skip-bundle -d mysql
	```

	※ `rails new` するための rails(gem) を Bundler で管理していない場合は、頭に `bundle exec` はつけなくてOKです。
	※ `--skip-bundle` してるので、このプロジェクトで利用する gem はまだインストールしていません。

- 次のように生成されます。

	![スクリーンショット 2014-08-09 21.05.50.png](https://qiita-image-store.s3.amazonaws.com/0/35733/8c9a2683-f6d6-12ee-f8d3-9eadb9ab2bb0.png "スクリーンショット 2014-08-09 21.05.50.png")

- `Gemfile` を見てみると、ちゃんと MySQL を利用するようになっているようです。

	![スクリーンショット 2014-08-09 21.00.27.png](https://qiita-image-store.s3.amazonaws.com/0/35733/bec68210-ee5d-576c-49f3-a85dd0f5714e.png "スクリーンショット 2014-08-09 21.00.27.png")

- `config/database.yml` を見てみると、こちらも MySQL 用になっているようです。

	![スクリーンショット 2014-08-09 21.00.45.png](https://qiita-image-store.s3.amazonaws.com/0/35733/e186705d-deef-dc51-5f36-2c275fa8a177.png "スクリーンショット 2014-08-09 21.00.45.png")

- ここで、まだこのプロジェクトで利用する gem をインストールしていなかったので、次のようにインストールします。
	- gem は Bundler で管理し、gemファイル群もプロジェクトの中の `vendor/bundle` ディレクトリ下に置きます。

		```shell
		$ cd hoge-app
		$ bundle install --path vendor/bundle
		```

	- ついでに、これらの gem 郡を Git 管理下から外すために、`.gitignore` に 次の行を追加しておきます。

		```.gitignore
		/vendor/bundle
		```

- `config/database.yml` に、MySQL を構築した際に設定した root ユーザのパスワードを追記します。
	- 開発 & ローカル な環境 なので、root ユーザでいいとは思いますが、もし他のユーザでやる場合は恐らく DB の Create 権限があるユーザを作成するなど、きちんと権限を考える必要があるかと思います。

	```app/config/database.yml
	default: &default
	  adapter: mysql2
	  encoding: utf8
	  pool: 5
	  username: root
	  password: [ここにパスワードを追記]
	  socket: /tmp/mysql.sock
	```

- この Rails で利用するデータベースを作成します。

	```shell
	$ cd hoge-app
	$ ./bin/rake db:create
	```

- MySQL へ接続して確認してみると、確かに作成されたことが確認できます。

	![スクリーンショット 2014-08-09 21.17.44.png](https://qiita-image-store.s3.amazonaws.com/0/35733/05624326-49f5-4913-53a7-9d02047793cd.png "スクリーンショット 2014-08-09 21.17.44.png")

- ここで、動作確認してみます。次のようにローカルWEBサーバを起動します。

	```shell
	$ cd hoge-app
	$ ./bin/rails s
	```

- ブラウザで `http://localhost:3000` にアクセスし、エラーが出てなければOKです。
	- MySQLへの接続ができない場合はここでエラーが出るので、その場合は見直してください。

	![スクリーンショット 2014-08-09 21.29.23.png](https://qiita-image-store.s3.amazonaws.com/0/35733/1f29fef1-6e12-9a31-baa9-b18c7a38d5f9.png "スクリーンショット 2014-08-09 21.29.23.png")

- 以上で、MySQL が使えるようになりました^^

# おまけ：RubyMine から MySQL へ接続

IDE に [RubyMine](http://www.jetbrains.com/ruby/) を使うと(有料ですが)、GUI で Rails のモデルが閲覧でき、とても便利です。
以前にこちら([RubyMine で Rails のモデルの閲覧が捗る件](http://qiita.com/hkusu/items/eacca0acd0f743760086))で SQLite を利用する例を書きましたが、MySQLに接続する手順は次のとおりです。

- RubyMine の右端の Database タブを開き、Data Source から MySQL を選択します。

	![スクリーンショット 2014-08-09 21.20.21.png](https://qiita-image-store.s3.amazonaws.com/0/35733/ee72ac67-0223-2081-dec3-9b9b12046c77.png "スクリーンショット 2014-08-09 21.20.21.png")

- ユーザ名とパスワードを入力し、`Test Connection` ボタンを押します。

	![スクリーンショット 2014-08-09 21.21.27.png](https://qiita-image-store.s3.amazonaws.com/0/35733/dadece16-52c3-501b-2532-7b5fc720a203.png "スクリーンショット 2014-08-09 21.21.27.png")

- もし上記で `Test Connection` ボタンが非活性の場合は、MySQL へ接続するためのドライバがはいってません。左の Drivers メニューから MySQL を選択し、Driver files 欄でドライバをインストールしてください(欄の中に自動インストールのリンクが出てくるはずです)。

	![スクリーンショット 2014-08-09 21.23.48.png](https://qiita-image-store.s3.amazonaws.com/0/35733/f46d4251-5e7d-e1c6-ef4c-8d0a141f409a.png "スクリーンショット 2014-08-09 21.23.48.png")

- 接続すると、こんな感じでモデルが確認できます。

	![スクリーンショット 2014-08-09 21.27.11.png](https://qiita-image-store.s3.amazonaws.com/0/35733/9d197c1b-c2a8-136f-c261-ba83731aa83a.png "スクリーンショット 2014-08-09 21.27.11.png")