目的
Heroku は標準のデータベースとして Postgres をサポートしますが、その他にもいくつか選択肢があります。
このページではデータベースに MySQL を提供してくれる ClearDB アドオンを利用する方法について説明します。
Heroku で MySQL を利用するための準備から、運用時に必要となるバックアップの扱い方の方法までをまとめます。
前提
以下の記事を理解していることが前提となります。
また、MySQL データベースを操作するクライアントツールである MySQL Workbench がインストール済みであることを前提とします。
データベースの準備
データベースの作成と確認
以下のコマンドを実行することでデータベースを作成できます。
heroku addons:add cleardb:ignite --app アプリケーションID
データベースを作成したら、以下のコマンドでうまく作成できたかどうかを確認します。
heroku addons --app アプリケーションID
一覧に cleardb:ignite があれば MySQL が使えるようになっています。ignite は無料で使える開発用のプランです。プランによって利用制限があります。
各種プランについては以下のページを参照してください。
データベースアクセスのための情報取得
データベースを作成後、以下のコマンドを実行してください。
heroku config --app アプリケーションID
heroku config はアプリケーションの設定を一覧表示するコマンドです。設定から CLEARDB_DATABASE_URL を探してください。CLEARDB_DATABASE_URL は MySQL にアクセスするために必要な情報です。以下のフォーマットになっています。
CLEARDB_DATABASE_URL: mysql://ユーザ名:パスワード@サーバ名/データベース?reconnect=true
この情報を元に MySQL にアクセスします。
データベースのアクセス確認
ClearDB アドオンは、ClearDB という Heroku とは独立したデータベースサービス(一般的には Database as a Service と呼ばれている)が提供している MySQL を使うためのものです。
Heroku 経由で作成したデータベースに Heroku アプリケーション外からアクセスすることが可能です。
MySQL Workbench を利用し、接続確認をしてみましょう。
以下、確認手順と参考スナップショットです。
- MySQL WOrkbench を起動する。
- 画面左の「SQL Development」の下にある「New Connection」をクリックする。
- 「Setup New Connection」画面で必要な情報を入力し「Test Connection」ボタンを押す。
備考)ClearDB は、Heroku とはまた別個の独立したサービスである。
ClearDB アドオンは、ClearDB という Heroku とは独立したデータベースサービス(一般的には Database as a Service と呼ばれている)が提供している MySQL を使うためのものです。
Heroku 経由で作成したデータベースに Heroku アプリケーション外からアクセスすることも可能です。
この ClearDB アドオンは、普通に使う場合とは別の利用料金プランを提供してくれています。
Heroku の ClearDB アドオンが提供してくれる環境は小中規模を想定しているようです。
ClearDB を直接利用するプランに開発用の無料プランは存在しませんし、規模も Heroku の ClearDB アドオンが提供してくれるものよりも大規模を想定したプランのみがラインナップされています。
必要に応じてアドオンではなく ClearDB の直接利用の検討も必要になるでしょう。
データベースのバックアップ
アプリケーション外からデータベースに直接アクセスできるため、MySQL Workbench の各種コマンド*1を使ってバックアップの作成/バックアップからのリストアができます。
バックアップの作成
MySQL Workbench の mysqldump コマンドを使ってバックアップを取ります。
以下、バックアップ取得コマンドの事例です。
mysqldump --user=ユーザ名 --password=パスワード --host=サーバ名 データベース > backup.sql
backup.sql ファイルがバックアップデータです。
mysqldump コマンドの詳細については、以下のページを参照してください。
- MySQL :: MySQL 5.1 リファレンスマニュアル :: 7.12 mysqldump — データベースバックアッププログラム
- ※ 日本語版の最新ドキュメントは MySQL 5.1 のため、最新バージョンのものを読みたい場合は英語版を参照のこと。
バックアップからのリストア
MySQL Workbench の mysql コマンドを使ってバックアップからリストアします。
以下、リストアコマンドの事例です。
mysql --user=ユーザ名 --password=パスワード --host=サーバ名 データベース < dump.sql
backup.sql ファイルがリストア用のバックアップデータです。
mysqldump コマンドの詳細については、以下のページを参照してください。
- MySQL :: MySQL 5.1 リファレンスマニュアル :: 7.7 mysql — MySQL コマンド ライン ツール
- ※ 日本語版の最新ドキュメントは MySQL 5.1 のため、最新バージョンのものを読みたい場合は英語版を参照のこと。
サーバ名やデータベースの指定を変えることで、ローカルや別のサーバにリストアすることもできます。
備考
開発に必要な情報
コメント
本ページの内容に関して何かコメントがある方は、以下に記入してください。
コメントはありません。 コメント/heroku/how/management/database/cleardb