暇人じゃない

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 に以下のように記述します。 ruby 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

データベースを作成、マイグレーションします。 bash % rake db:create RAILS_ENV=production % rake db:migrate RAILS_ENV=production

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

Rails、楽しいですね!