やりたいこと
HerokuのアプリにアタッチしているMySQLへ、MySQL Workbenchなどのクライアントから接続したい
方法
情報を取得する
アプリ名を取得
herokuにデプロイしているアプリケーションの名前を取得します。
この場合はhogehogeというアプリをデプロイしていることとします。
herokuのアプリ名は、ど忘れしてたり、被らないように特殊にしている場合があるのでcliで取得してコピーしましょう。
$ heroku list
hogehoge
fugafuga
アプリの情報を取得
アプリケーションhogehogeの情報を取得します。
アプリケーションに設定されている環境変数が出力されます。
Heroku上にあるアプリケーションにMySQLをアタッチしている多くの場合において、DATABASE_URLは以下のようになっていると思います。
$ heroku config -a hogehoge
=== hogehoge Config Vars
CLEARDB_DATABASE_URL: mysql://fizz:buzz@foo.cleardb.com/heroku_barbarbar?reconnect=true
DATABASE_URL: mysql://fizz:buzz@foo.cleardb.com/heroku_barbarbar?reconnect=true
以下略
MySQLの接続情報を抜粋する
環境変数の値から接続情報のすべてを読み取ることができます。
// 元が以下だとしたら
mysql://fizz:buzz@foo.cleardb.com/heroku_barbarbar?reconnect=true
// このように読み替える
mysql://username:password@host/schema?reconnect=true
// つまり以下のようになる
MySQLホスト
=> foo.cleardb.com
DB Schema
=> heroku_barbarbar
Username
=> fizz
Password
=> buzz
以上になります。
あとは使っているクライアントに情報を入れて接続してあげるだけです。
最後に
HerokuってデフォルトのデータベースがPostgreSQLなんですが、
MySQLに変えることもできます。
僕の場合には仕事、プライベート、開発環境、本番環境問わず、MySQLを使うことが多いため、PostgresからMySQLへ変えてみました。
変え方については検索すればいくらでもヒットするのでそちらを。
ちなみにクライアントからアクセスして使ってみた感じだと速度が遅めです。まぁ無料なのでそこは仕方ないですね。