3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

herokuで heroku run rake db:migrate 打って Mysql2::Error::ConnectionError になったときの対処

Posted at

herokuでデプロイする際にマイグレーション実行で躓いた。

heroku run rake db:migrate

でエラー

Mysql2::Error::ConnectionError: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

まずはソケットの場所を疑う(scaffoldで作ったデプロイ練習用のアプリなので可能性は低いが・・・)。
config/database.ymlのproduction:socket:のパスとmysql_config --socketで得られるパスを確認。

/var/lib/mysql/mysql.sock

同じ。

次にheroku configで環境変数を確認してみる。

CLEARDB_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:

DABASE_URLがない。しかもCLEARDB_DATABASE_URLの値がmysql2になっている。
herokuCLIで設定した際になにか間違えたのか? よくわからん。
ここはherokuのpernonal/settingsでconfig Varsを追加した。

これで正常にマイグレーションできた。

3
2
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
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?