Railsのアプリケーションで MySQL を利用する手順のメモです。
前提
- ローカルの Mac に 構築した Rails から、同じくローカルに立てた MySQL へ接続します。
- OS のバージョンは
Mac OS X 10.9.4 (Mavericks)
です。 - Ruby のバージョンは
2.1.2
、Railsのバージョンは4.1.1
です。
- OS のバージョンは
- Mac に MySQL をインストールした手順についてはこちらをご覧ください。
手順
-
Railsアプリケーションを
-d mysql
オプションをつけて生成します。$ bundle exec rails new hoge-app --skip-bundle -d mysql
※
rails new
するための rails(gem) を Bundler で管理していない場合は、頭にbundle exec
はつけなくてOKです。
※--skip-bundle
してるので、このプロジェクトで利用する gem はまだインストールしていません。 -
次のように生成されます。
-
Gemfile
を見てみると、ちゃんと MySQL を利用するようになっているようです。 -
config/database.yml
を見てみると、こちらも MySQL 用になっているようです。 -
ここで、まだこのプロジェクトで利用する gem をインストールしていなかったので、次のようにインストールします。
-
gem は Bundler で管理し、gemファイル群もプロジェクトの中の
vendor/bundle
ディレクトリ下に置きます。$ 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.ymldefault: &default adapter: mysql2 encoding: utf8 pool: 5 username: root password: [ここにパスワードを追記] socket: /tmp/mysql.sock
-
この Rails で利用するデータベースを作成します。
$ cd hoge-app $ ./bin/rake db:create
-
MySQL へ接続して確認してみると、確かに作成されたことが確認できます。
-
ここで、動作確認してみます。次のようにローカルWEBサーバを起動します。
$ cd hoge-app $ ./bin/rails s
-
ブラウザで
http://localhost:3000
にアクセスし、エラーが出てなければOKです。- MySQLへの接続ができない場合はここでエラーが出るので、その場合は見直してください。
-
以上で、MySQL が使えるようになりました^^
おまけ:RubyMine から MySQL へ接続
IDE に RubyMine を使うと(有料ですが)、GUI で Rails のモデルが閲覧でき、とても便利です。
以前にこちら(RubyMine で Rails のモデルの閲覧が捗る件)で SQLite を利用する例を書きましたが、MySQLに接続する手順は次のとおりです。