おあそび ぷろぐらみんぐ 日記

プログラミング初心者のおあそびと勉強の記録です。

LINE bot作ってみた詳細⑤〜herokuでmySQLを使う

さて、LINE botの続きです。

前回の記事までで、「bot」「データベース(MySQL)」それぞれは動くようになりました。

今回はmySQLを、botを置いてあるherokuからでもアクセスできるようにします。

 ※今回からお読みの方もしいれば、こちらからお読みください。

 ※前回の記事で「次回はbotmySQLを連携させる」と書きましたが、

   前段が長くなってしまい、そこまでたどり着きませんでした。。

 

f:id:beethovenmendelssohn:20170415091334j:plain

 ・herokuで使えるMySQLサービス

当然ながらherokuに置いてるbotから、mySQLにアクセスできないといけません。

 

あれ?作ったMySQLのデータベースをherokuにあげるだけじゃないの?

って最初は思ってたんですが、そうじゃなかった。

 

まず、herokuではデフォルトではMySQLに対応していないらしい。

で、heroku上でもMySQLを使えるようにするため、まずはAdd onとして「ClearDB MySQL」を追加します。

 ※ClearDB=Web上でMySQLを使えるサービスです。

 

が、さらにその前に、herokuのAdd on機能を使うためにはクレジットカードの登録が必要なので、初めて使う方は登録しましょう。

 ※CelarDBはFree planで使う限りは無料です

 

ログインしてる右上の人の

マーク⇛アカウントセッティング

f:id:beethovenmendelssohn:20170415083801p:plain

 

MyAccountページにいくので、「Billing」から画面遷移に従って登録しましょう。

f:id:beethovenmendelssohn:20170415083922p:plain

 

さて、ではClearDBの登録です。

f:id:beethovenmendelssohn:20170415082543p:plain

前々回デプロイした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の隣の+を押します。

f:id:beethovenmendelssohn:20170415092813p:plain

 

セットアップ画面になるので、

赤枠にシた部分に、上記のCLearDBのhost名などを入れましょう。

一番上のConnection Nameはこのアプリ上の管理の問題なので、適当につければOK。

f:id:beethovenmendelssohn:20170415092913p:plain

全部入れたら「Test Connection」をクリック!

Successfully made the MySQL connection

とポップアップででてくればOKですね。

 

さて、長々書いてきたLINE bot の記事も次回でようやく終わりそうです。

次回こそは仕上げのbotmySQLの連携部分です。