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、楽しいですね!