Ruby の勉強のため,Ruby on Rails に含まれる O/R マッピングライブラリである ActiveRecord を使って MySQL 上のデータを操作してみました。
ActiveRecord のサンプルソースは簡単に見つけられたので,真似をしつつ以下のようなプログラムを作って実行したところ,mysql.sock が見つからないとエラーが出てしまいました。
require "rubygems" require "active_record" ActiveRecord::Base.establish_connection( :adapter => 'mysql', :host => 'hostname', :username => 'username', :password => 'password', :database => 'my_db' ) ・・・・・・
調べたところ,ActiveRecord は指定しないとデフォルトの /tmp/mysql.sock となるようで,異なる場合は指定する必要がありました。
MySQL が動作しているマシンで ps コマンドを実行して mysqld の socket を調べ,引数に追加したところ接続できるようになりました。
ActiveRecord::Base.establish_connection( :adapter => 'mysql', :host => 'hostname', :username => 'username', :password => 'password', :database => 'my_db', :socket => '/var/lib/mysql/mysql.sock' )
ActiveRecord は,Hibernate のように設定ファイルを作る必要がなので本当に楽ちんです。
関連エントリー