LoginSignup
0
0

More than 3 years have passed since last update.

MySQLを使ったRailsアプリをHerokuにデプロイしようとしてエラーになった話

Posted at

開発環境

  • Ruby(3.0.0)
  • Ruby on Rails(6.1.3)
  • MySQL(8.2.3)

エラーになった背景

heroku run rails db:migrate

上記のコマンドを入力した時に、下記のエラーが発生。

Mysql2::Error::ConnectionError: Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)

エラーの原因

HerokuのデフォルトのデータベースがPostgresqlであるため、MySQLを使う場合は下準備が必要であるため。

解決方法

ClearDBというアドオンを使う

heroku addons:create cleardb:ignite

上記のコマンドを入力します。
すると、ClearDBというアドオンを使うことができるようになります。

Mysqlへの接続

次に、Rails側でそのMySQLデータベースの情報を知る必要がありますが、Railsは

DATABASE_URL

という環境変数が設定されていると、その情報を使ってデータベースに接続するという仕様になっているため、

heroku config:add DATABASE_URL='mysql2://<ユーザー名>:<パスワード>@<ホスト名>/<データベース名>?reconnect=true'

でMySQLの情報を設定してあげると、その情報を使ってMySQLに接続できる、ということになります。

0
0
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
0
0