Rails 3 から MySQL に接続する

環境: Debian Squeeze Rails 3.0.7 MySQL 5.1.57

構成としては、Web サーバー(Rails)から別ホストの DB サーバー(MySQL)に接続するものです。

まず、MySQL に接続する為に必要なライブラリをインストールしておきます。

% sudo aptitude install libmysqlclient-dev

Rails では mysql2 というアダプタを使用して MySQL に接続します。 アダプタをインストールする為に、Gemfile に以下のように記述します。

gem 'mysql2', '< 0.3'

「バージョンが 0.3 より下の mysql2」を指定しています。 0.3 系の mysql2 は Rails 3.1 向けに作られたものらしく、0.2 系の mysql2 を使わないと、Rails 3.0.7 ではエラーが出ます。

bundle install します。

% bundle install

database.yml は以下のように記述しています。

production:
  adapter: mysql2
  database: DATABASE
  host: DBHOST
  port: 3306
  username: USERNAME
  password: PASSWORD
  encoding: utf8
  pool: 5
  timeout: 5000

データベースを作成、マイグレーションします。

% rake db:create RAILS_ENV=production
% rake db:migrate RAILS_ENV=production

Rails 2.x の時は MySQL のアダプタ周りでかなりハマった記憶があるのですが、だいぶ楽になりました。

Rails、楽しいですね!

© 2023 暇人じゃない. All rights reserved.