LoginSignup
6
6

More than 5 years have passed since last update.

Rails(mac OSX / CentOS)でsocketがないよって言われた時のもろもろ

Last updated at Posted at 2016-01-13

・趣旨〜
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するようにしましょう。

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6