LoginSignup
11
10

More than 3 years have passed since last update.

HerokuにデプロイしたはいいがDBはどうやって使うのだ?(ClearDBの使い方)

Last updated at Posted at 2020-09-13

先日、開発初期段階でLaravelアプリをHerokuにデプロイしました。→まだ全然しょぼいLaravelアプリをHerokuにデプロイしてみた

デプロイできたのはいいものの、ClearDBの使い方が全然わからず途方に暮れまして、ひょっとしたら僕と同じように悩む初学者の方がいるかもしれないので、参考になればと思いメモしておきます。

使うもの
Heroku, ClearDB MySQL, MacOS

ClearDBにもphpMyAdminみたいにGUIで操作できるツールはあるのか?

→あります。MySQL Workbench、Sequel Proなどです。

Herokuのサイト上の、Resources > Add-ons で ClearDB MySQLをクリックすると、NAVISITEというClearDBらしきサイトにジャンプできます。このページのHow to Connectに下記のように書いてあります。
(このNAVISITEには、ターミナルから$ heroku addons:open cleardbでも行けます。

Managing Your Databases
If you want to manage the tables, data and other settings in your Navisite database, we recommend that you use commonly known Graphical tools such as Oracle's MySQL Workbench, Sequel Pro for Mac OS X, or Navicat. You can also use any of the bundled MySQL tools, such as the mysql and mysqldump command-line utilities.

MySQL Workbench

今回はWorkbenchを使うことにしました。こちらから簡単にダウンロードできます。DB設計に便利なER図を描ける便利ツールもついてます。

Workbenchを開いたら、+ボタンで新しいConnectionを作成します↓
スクリーンショット 2020-09-12 15.13.53.png
開いたら下記項目を書き込みます。基本的には、HerokuのClearDBの情報を入れれば良いですが(Herokuページ > Settings > Config Vars参照)、Connection Nameは適当でいいっぽいです。とりあえず私はプロジェクト名を入れておきました↓
スクリーンショット 2020-09-12 15.14.10.png
作成できたConnectionをクリックすると、私はなんかこんなwarningが出ますが...
スクリーンショット 2020-09-12 15.37.20.png
Continue anywayすると、こんなUIに辿り着きます↓
スクリーンショット 2020-09-12 15.37.57.png
↑やや操作が直感的ではないですが、ここでテーブルの設定を見たり、SQL文を打ち込んだりできます。

というわけで、GUIツールがあることはわかりましたが、ターミナルでも操作できるのでしょうか。

ClearDB MySQLはターミナルでも操作できるのか?

→できます。

ただし、至極当然な話ですがMySQLがPCにインストールされてないとできません。ただし、MAMPのMySQLとは別物です(→私みたいな初学者にはこういうところが至極当然ではなく地味にわからなくて苦労します...!!)。

ターミナルでmysqlコマンドを何か打ってみて(例えばMySQLのバージョンを参照するなど。下記参照)command not foundと出てきたらMySQLが入ってないです↓

$ mysql --version
もしくは
$ mysql -V

MySQLがない!!ってなった方は、HomeBrewで下記のコマンドでインストールできます↓
*HemoBrewとは=MacOS用のパッケージ管理システム。インストールを簡単にやってくれるやつ
(HomeBrewをインストールしてない方はHomeBrewのインストールが先ですね(^^))

$ brew install mysql

インストールできたら、まずサーバーを立ち上げます。私はログインしてからやるものだと思い、ERROR 2013 (HY000): Lost connection to MySQL server during queryエラーに直面してググりまくったり公式ドキュメント読んだりしても解決せず死にかけてましたが、なんてことはない。まず始めにやる作業だったみたいです。

$ mysql.server start

↑この作業でSUCCESS!と出たらOKです。

次はログイン。ちなみにこの作業を行う時、ディレクトリはLaravelのアプリがある所じゃなくても大丈夫そう(←ここもMAMPと違うところ?)。-uに続けてDB_USERNAME、-hに続けてDB_HOSTを入力。HerokuのSettingsのConfig Varsを見ればよいですね。

$ mysql -u DB_USERNAME -h DB_HOST -p

↑Enterした後に求められるパスワードも同様にDB_PASSWORDを。

ログインすると、プロンプトが>mysqlに変化します。
まず、DBを選択します↓。データベース名がわからなくなってしまったら、Heroku > Settigns > Var Configsを参照しましょう。

use データベース名;

↑これをしないとNo database selectedというエラーになってしまいます。もしくは先ほどMySQLにログインした時に、-pの後にDB名を入れておくっていう手もあるみたいです。

これでHerokuのClearDBがターミナルからでも操作できるようになりました。
めでたし、めでたし。

余談

MySQLを使い始めるのに必要そうなコマンドを少しメモって終わりたいと思います。

テーブルの一覧を見たい時は↓

show tables;

あるテーブルのカラムを見たい時は↓

desc テーブル名;

↑descって読みづらくて覚えにくいですが、descriptionの略みたいです。

11
10
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
11
10