Rails
Mac
MySQL
RubyMine
rubyuby

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

More than 3 years have passed since last update.

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

前提

  • ローカルの Mac に 構築した Rails から、同じくローカルに立てた MySQL へ接続します。
    • OS のバージョンは Mac OS X 10.9.4 (Mavericks) です。
    • Ruby のバージョンは 2.1.2、Railsのバージョンは 4.1.1 です。
  • 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 はまだインストールしていません。

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

    スクリーンショット 2014-08-09 21.05.50.png

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

    スクリーンショット 2014-08-09 21.00.27.png

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

    スクリーンショット 2014-08-09 21.00.45.png

  • ここで、まだこのプロジェクトで利用する gem をインストールしていなかったので、次のようにインストールします。

    • gem は Bundler で管理し、gemファイル群もプロジェクトの中の vendor/bundle ディレクトリ下に置きます。

      $ cd hoge-app
      $ bundle install --path vendor/bundle
      
    • ついでに、これらの gem 郡を Git 管理下から外すために、.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 で利用するデータベースを作成します。

    $ cd hoge-app
    $ ./bin/rake db:create
    
  • MySQL へ接続して確認してみると、確かに作成されたことが確認できます。

    スクリーンショット 2014-08-09 21.17.44.png

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

    $ cd hoge-app
    $ ./bin/rails s
    
  • ブラウザで http://localhost:3000 にアクセスし、エラーが出てなければOKです。

    • MySQLへの接続ができない場合はここでエラーが出るので、その場合は見直してください。

    スクリーンショット 2014-08-09 21.29.23.png

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

おまけ:RubyMine から MySQL へ接続

IDE に RubyMine を使うと(有料ですが)、GUI で Rails のモデルが閲覧でき、とても便利です。
以前にこちら(RubyMine で Rails のモデルの閲覧が捗る件)で SQLite を利用する例を書きましたが、MySQLに接続する手順は次のとおりです。

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

    スクリーンショット 2014-08-09 21.20.21.png

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

    スクリーンショット 2014-08-09 21.21.27.png

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

    スクリーンショット 2014-08-09 21.23.48.png

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

    スクリーンショット 2014-08-09 21.27.11.png