プログラミング初学者なしこの技術アウトプット

プログラミングスクールRUNTEQで学んだことや自習したことのアウトプットをするブログ

rails db:migrateしたらMysql2::Error::ConnectionError: Can't connect to local MySQL server through socket ‘/tmp/mysql.sock'とエラーが出る

sorceryを導入する手順の途中でrails db:migrateしたらMysql2::Error::ConnectionError: Can't connect to local MySQL server through socket ‘/tmp/mysql.sock'とエラーが出ました。

※sorceryの導入方法 ( gem sorceryを使ってログイン機能を実装した話 - Qiita )

以下のサイトを参考に解決に導けました! qiita.com

私の場合、 以下手順でエラーを解決できました。

手順

#mysql.sockというMySQLへ接続するためのファイルをもう一度作成
% sudo touch /tmp/mysql.sock

#作ったsockファイルをちゃんとtmp下にファイルをしまってあげる
% sudo chown mysql:mysql /tmp

#ファイルのあるディレクトリに対する権限を付与
% sudo chown -R _mysql:_mysql /usr/local/var/mysql

#MySQLを再起動すると成功!
% sudo mysql.server restart
Starting MySQL
.. SUCCESS! 


ちなみに、その後、再度sorcery導入のためrails db:migrateをしたらActiveRecord::NoDatabaseError: Unknown database 'アプリ名_development'とエラーが出ました。
こちらはrails db:createを最初に打つことを忘れていてデータベース自体が作成されていないためでした。 ( ActiveRecord::NoDatabaseError: Unknown database 'アプリ名_development' 解決策 - Qiita )

以下の違いを再確認しました!
rails db:create → データベース自体(テーブルを保管しておく全体のシステム)を作るときに使うコマンド
rails db:migrate → は、データベースの中にテーブルを作ったり、カラムを変更したりするときに実行するコマンド