・趣旨〜
rails初心者として環境構築からどハマりしてたんですがどこもdatabase.ymlをいじれと書くばかりなのが多かった(し、自分がハマったのはそこではなかった)ためtipsをこちらに備忘録ついでに書きたいと思います。。。
・対象者〜
$rails new hogehoge -d mysql
とコンソールを叩いてrailsアプリを作ったはいいけどいざscaffoldを組んだりactiverecordを使おうとしたりしたら"Can't connect to local MySQL server through socket '/tmp/mysql.sock'"みたいに優しく諭されてしまった人向け
それでは以下本文です。
まず、ソケットがないよと怒られた時はmysqlサーバが動いていない(というか入っていない)可能性があります。
$ps ax | grep mysqld
でgrep以外のプロセスが走っているかどうかを確認してください。これで走ってなかったらmysqlサーバそのものが動いていないのでいくらactiverecord-mysql2-adapterとかGemfileに設定書き込んでbundleしてもmysqlはウンともスンとも言いません。
逆に言えば
(mac)$sudo brew install mysql
(CentOS)http://qiita.com/yusukaaay/items/20fd649dde9857b46ac5
みたいな感じでmysqlを入れて
$mysql.server start
とか打ち込んでやれば動きます。
上記以外でなぜかソケットがないよ!っていう人はそれこそconfig内のdatabase.ymlの設定間違いだったり、ソケットだけなぜか本当になかったりするんだと思いますので、参考リンクのあたりを読んでいただければと。
書いてみればものすごいアホなことなんですが、ハマっているうちはなかなかわからなかったので、、、
以下、参考リンク
おまけ
ちなみにこれでちゃんとmysql自体が動くようになっても、そのままscaffoldしてrakeでmigrateしようとするとはねられます。一度mysqlに接続してmigrate先となるdbを作成してからscaffoldするようにしましょう。