search
LoginSignup
48

More than 5 years have passed since last update.

posted at

updated at

Organization

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 をインストールした手順についてはこちらをご覧ください。

手順

  • 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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
48