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
→ は、データベースの中にテーブルを作ったり、カラムを変更したりするときに実行するコマンド