LINE bot作ってみた詳細⑤〜herokuでmySQLを使う
さて、LINE botの続きです。
前回の記事までで、「bot」「データベース(MySQL)」それぞれは動くようになりました。
今回はmySQLを、botを置いてあるherokuからでもアクセスできるようにします。
※今回からお読みの方もしいれば、こちらからお読みください。
※前回の記事で「次回はbotとmySQLを連携させる」と書きましたが、
前段が長くなってしまい、そこまでたどり着きませんでした。。
・herokuで使えるMySQLサービス
当然ながらherokuに置いてるbotから、mySQLにアクセスできないといけません。
あれ?作ったMySQLのデータベースをherokuにあげるだけじゃないの?
って最初は思ってたんですが、そうじゃなかった。
まず、herokuではデフォルトではMySQLに対応していないらしい。
で、heroku上でもMySQLを使えるようにするため、まずはAdd onとして「ClearDB MySQL」を追加します。
※ClearDB=Web上でMySQLを使えるサービスです。
が、さらにその前に、herokuのAdd on機能を使うためにはクレジットカードの登録が必要なので、初めて使う方は登録しましょう。
※CelarDBはFree planで使う限りは無料です
ログインしてる右上の人の
マーク⇛アカウントセッティング
MyAccountページにいくので、「Billing」から画面遷移に従って登録しましょう。
さて、ではClearDBの登録です。
前々回デプロイしたbotアプリのページから、
Resourcesタブ⇛Add onsに「ClearDB」と入れて検索。
予測変換で出てきますね。
後は画面遷移に従って登録していきましょう。
(Add onは、ユーザアカウント単位でなく、
アプリケーション単位の連携になるということですね。
新しくアプリを作ったら、その度このステップを踏む必要があります。
これでClearDBを利用できるようになりました。
・herokuでのMySQLの使い方
ターミナルで、herokuにログインシた状態で、configの中のCLEARDBの情報を確認します。
$ heroku config | grep CLEARDB_DATABASE_URL //herokuのconfig表示。CELAR−DB_hogehoge部分のみ抽出
CLEARDB_DATABASE_URL: mysql://xxxxxxxxxxxxxx:yyyyyyyy@zz-zzzz-zzzz-zzzz-zz.cleardb.net/heroku_1234567891234?reconnect=true
こんな感じでだらっと結果がかえってくる。
見方はこんな感じ。
■ClearDBの情報
username = xxxxxxxxxxxxxx
password = yyyyyyyy
host = zz-zzzz-zzzz-zzzz-zz.cleardb.net
databse = heroku_1234567891234
この情報をメモっておきましょう。
で、その情報を使って、ログインします。
$mysql --host=zz-zzzz-zzzz-zzzz-zz.cleardb.net --user=xxxxxxxxxxxxxx --password=yyyyyyyy heroku_1234567891234
これでMySQLに入れたはず。
後は前回と同じやり方で、データベースを編集していきましょう。
・ClearDBのデータベースにアクセスできるか?アプリからも確認
これでOK。
OKなはずだが、本当にこれでWeb上から作ったDBにアクセスできるのか?
不安だったので一応別の方法でも確認してみましょう。
こちらのMySQL_Workbench(MySQL :: MySQL Workbench)というやつを使って、確認する。
インストールは上記のリンク先から画面遷移に従いましょう。
インストールが終わったら、アプリを起動します。
最初に開くとこんなページに。
MySQL Connectionの隣の+を押します。
セットアップ画面になるので、
赤枠にシた部分に、上記のCLearDBのhost名などを入れましょう。
一番上のConnection Nameはこのアプリ上の管理の問題なので、適当につければOK。
全部入れたら「Test Connection」をクリック!
Successfully made the MySQL connection
とポップアップででてくればOKですね。
さて、長々書いてきたLINE bot の記事も次回でようやく終わりそうです。