Mysql2::Error::ConnectionErrorが出た時の対処方法
ヘロクでデプロイ後
We're sorry, but something went wrong.
上記エラーが発生。
解消方法を記録しておきます。
①ヘロクコマンド
/heroku logs --tail --app furima-32604
実行
②エラー文を確認
Mysql2::Error::ConnectionError
(Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)):
Mysqlと繋がっていなさそう
③もう一度マイグレートしてみるが改善できず
heroku run rails db:migrate
④heroku configを開く
CLEARDB_DATABASE_URL: mysql://bb8eed0703cee3:5400ea18@us-cdbr-east-02.cleardb.com/heroku_8365419459f7b8b?reconnect=true
LANG: en_US.UTF-8
RACK_ENV: production
RAILS_ENV: production
RAILS_LOG_TO_STDOUT: enabled
RAILS_SERVE_STATIC_FILES: enabled
SECRET_KEY_BASE: b85da40561f36ca3d46a9440b4d879c29a8770039105d8eeac286a5ae6f2ba767b638c90665ec73d47fdcf075ed8b1dea45bfaefb9f8bd54f5487e5459dadd0d
DATABASE_URL:がない!
⑤コマンド/
heroku config:set DATABASE_URL=mysql2${heroku_cleardb:5}
を実行
⑥もう一度heroku config
CLEARDB_DATABASE_URL: mysql://bb8eed0703cee3:5400ea18@us-cdbr-east-02.cleardb.com/heroku_8365419459f7b8b?reconnect=true
DATABASE_URL: mysql2
LANG: en_US.UTF-8
RACK_ENV: production
RAILS_ENV: production
RAILS_LOG_TO_STDOUT: enabled
RAILS_SERVE_STATIC_FILES: enabled
SECRET_KEY_BASE: b85da40561f36ca3d46a9440b4d879c29a8770039105d8eeac286a5ae6f2ba767b638c90665ec73d47fdcf075ed8b1dea45bfaefb9f8bd54f5487e5459dadd0d
データーベースできてる!
でもオレンジの部分に「2」がついていない
⑦コマンド実行
/heroku config:set DATABASE_URL='mysql2://bb8eed0703cee3:5400ea18@us-cdbr-east-02.cleardb.com/heroku_8365419459f7b8b?reconnect=true'
⑧コマンド
heroku config
=== furima-32604 Config Vars
CLEARDB_DATABASE_URL: mysql://bb8eed0703cee3:5400ea18@us-cdbr-east-02.cleardb.com/heroku_8365419459f7b8b?reconnect=true
DATABASE_URL: mysql2://bb8eed0703cee3:5400ea18@us-cdbr-east-02.cleardb.com/heroku_8365419459f7b8b?reconnect=true
LANG: en_US.UTF-8
RACK_ENV: production
RAILS_ENV: production
RAILS_LOG_TO_STDOUT: enabled
RAILS_SERVE_STATIC_FILES: enabled
SECRET_KEY_BASE: b85da40561f36ca3d46a9440b4d879c29a8770039105d8eeac286a5ae6f2ba767b638c90665ec73d47fdcf075ed8b1dea45bfaefb9f8bd54f5487e5459dadd0d
できてる!
⑨もう一度マイグレ実行
heroku run rails db:migrate
無事解消できました。