2008年7月28日月曜日

Railsで"rake db:migrate"すると"No such file or directory - /tmp/mysql.sock"というエラーが出る

mysql.sockが見つけられないというエラー。railsがmysql.sockのパスを認識できなかった場合にデフォルトの"/tmp/mysql.sock"を探しに行くために発生する模様。どうやらrailsインストール時にmysqlがインストールされていない場合に出るとのこと。

"config/database.yml"に"socket: /var/lib/mysql/mysql.sock"のようにmysql.sockの正しいパスを付け加えれば動作するのだが毎回していするのはめんどい。
あとは/tmpにシンボリックリンクを作るという手もあるらしい。。
# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

実際行った対処はRubyGemsでrails関連を再インストール(uninstallしてinstall)した後にrailsコマンドでアプリを作り直したところ
"config/database.yml"に"socket: /var/lib/mysql/mysql.sock"と付くようになり"rake db:migrate"も成功するようになった。どうやらrailsが正しいパスを認識してくれたようですね。

0 件のコメント: