Sequel PRO：データベースに接続する方法


## 概要
Ruby on Railsで開発する時に、データベースはいつもMySQLを使用しています。

そのデータベースに接続する時は、Sequel PROを使っていますが、最初の頃はどうやって接続すれば良いかわからずに悩みました。

理解できると非常に簡単なので、実際に使用している例を提示しながらわかりやすく説明します。

今回は、ローカル開発・Vagrant・本番サーバの3つについて紹介します。

## 例で使用しているサービス
### [キリスト教会マップ](https://www.christchurches-map.com/)

# 手順
## ローカル開発
* まずは一番簡単なローカル開発での接続方法です。
* 以下は、自分が開発しているMacのデータベースに接続する時の情報です。

![スクリーンショット 2017-09-03 21.41.59.png](https://qiita-image-store.s3.amazonaws.com/0/142810/26c5697c-d887-a7de-67a6-6da3ad41575f.png "スクリーンショット 2017-09-03 21.41.59.png")

### ホスト

![スクリーンショット 2017-09-03 21.53.13.png](https://qiita-image-store.s3.amazonaws.com/0/142810/1bb25062-bd08-220d-4621-589419e68c01.png "スクリーンショット 2017-09-03 21.53.13.png")

* 127.0.0.1はローカル・ループバック・アドレスと呼ばれ、自分自身を指す特別なIPアドレスです。
* 基本的にこのIPで接続できます。

### ユーザ名・パスワード

![スクリーンショット 2017-09-03 21.56.21.png](https://qiita-image-store.s3.amazonaws.com/0/142810/b59da7fd-12c9-a973-8f4e-11b6bf313922.png "スクリーンショット 2017-09-03 21.56.21.png")

* こちらはデータベースに接続する際のユーザ名とパスワードになります。
* パスワードは設定している場合に必要ですが、設定していない場合は必要ありません。
* このユーザ名とパスワードは、コマンドで接続する時に使用するものだと理解すれば覚えやすいと思います。

```
$ mysql -u root -p
Enter password:
```

* 上記の `root` がユーザ名で、 passwordに入力するものがパスワードということです。

### データベース

![スクリーンショット 2017-09-03 22.01.14.png](https://qiita-image-store.s3.amazonaws.com/0/142810/2ba6c7b7-27a3-c419-39d0-381743a33704.png "スクリーンショット 2017-09-03 22.01.14.png")

 * ここは接続するデータベース名を入力します。
 * データベース名を確認するには、コマンドでmysqlに入った後、以下を実行します。

```
mysql> show databases;
```

![スクリーンショット 2017-09-03 22.03.45.png](https://qiita-image-store.s3.amazonaws.com/0/142810/e2c4003d-6a34-3ffb-bd5e-37a305942d14.png "スクリーンショット 2017-09-03 22.03.45.png")

* ここで表示されているデータベース名から接続したいものを選びます。

### ポート

![スクリーンショット 2017-09-03 22.06.12.png](https://qiita-image-store.s3.amazonaws.com/0/142810/2aaecee9-a585-9e39-379b-a25c327fd869.png "スクリーンショット 2017-09-03 22.06.12.png")

* ここはポート番号を入力しますが、MySQLはデフォルトが `3306` なので、通常これを入力していれば問題ありません。

### 接続をテスト
* それでは実際に接続できるかテストしてみます。

![スクリーンショット 2017-09-03 22.08.45.png](https://qiita-image-store.s3.amazonaws.com/0/142810/90943695-8a0d-223c-6123-52c85a38720b.png "スクリーンショット 2017-09-03 22.08.45.png")

* 上記のように、『接続をテスト』ボタンを押すと、「接続が成功しました」と表示されればOKです。

<br>
## Vagrant
* 続けてVagrantで開発している場合の情報を見ていきます。
* 以下は、自分が使用しているVagrantのデータベースに接続する時の情報です。
* VagrantでVirtualBoxが起動している時のみ接続できます。

![スクリーンショット 2017-09-03 21.43.01.png](https://qiita-image-store.s3.amazonaws.com/0/142810/9ac3ebe8-f937-4253-4e2a-b8d413449d73.png "スクリーンショット 2017-09-03 21.43.01.png")

### 接続イメージ
* Macから以下のようなイメージでデータベースに接続します。
* 以下のように、SSH接続とデータベース接続の2段階に分かれています。
* これを理解すれば、何を入力すれば良いか理解が深まると思います。

![スクリーンショット 2017-09-03 22.49.14.png](https://qiita-image-store.s3.amazonaws.com/0/142810/76862806-7ca2-a3b5-8d98-a2dfd3b7d2d8.png "スクリーンショット 2017-09-03 22.49.14.png")

### データベースへの接続
* まず赤囲みの部分は、開発しているMacで見たようにデータベースに接続する情報を入力します。

![スクリーンショット 2017-09-03 21.43.01.png](https://qiita-image-store.s3.amazonaws.com/0/142810/002af197-57a8-4d89-9758-d6c9c17d5e02.png "スクリーンショット 2017-09-03 21.43.01.png")

### SSH接続
* VagrantでVirtualBoxを起動した後、SSHで接続して入ります。
* その情報を入力します。

![スクリーンショット 2017-09-03 22.15.26 2.png](https://qiita-image-store.s3.amazonaws.com/0/142810/bf1620c8-2b6f-9a64-3973-0c1b59df04e8.png "スクリーンショット 2017-09-03 22.15.26 2.png")

### SSH ホスト

![スクリーンショット 2017-09-03 22.26.19.png](https://qiita-image-store.s3.amazonaws.com/0/142810/41ea6efc-220b-c78b-3c15-aef8498bcb68.png "スクリーンショット 2017-09-03 22.26.19.png")

* SSHホストは、Vagrantfileで設定したIPです。
* Vagrantfileを開くと、以下のように記載されている部分です。

```
# using a specific IP.
config.vm.network "private_network", ip: "192.168.33.10”
```

### SSHユーザ、SSHパスワード
* Vagrantの場合、以下がデフォルトとなっています。

```
SSH： vagrant
```

```
SSHパスワード： vagrant
```

### SSHポート
* SSHポートはデフォルトで `22` です。
* 設定を変更していなければ、22で接続できます。 

<br>
## 本番サーバ
* 最後にEC2など本番サーバへの接続方法を見ていきます。
* 以下は、自分が使用しているEC2のデータベースに接続する時の情報例です。

![スクリーンショット 2017-09-03 23.03.20.png](https://qiita-image-store.s3.amazonaws.com/0/142810/73a8c7b3-7ca6-3aff-5ab2-721e1776503c.png "スクリーンショット 2017-09-03 23.03.20.png")

### 接続イメージ
* Macから以下のようなイメージでデータベースに接続します。

![スクリーンショット 2017-09-03 23.09.19.png](https://qiita-image-store.s3.amazonaws.com/0/142810/7125ccb3-2dd3-b441-bb11-dffdc5acdac8.png "スクリーンショット 2017-09-03 23.09.19.png")

### データベースへの接続
* まず赤囲みの部分は、データベースに接続する情報を入力します。
* 自分の場合は、本番サーバ内にデータベースを入れているので、以下のような情報となります。

![スクリーンショット 2017-09-03 23.03.20 2.png](https://qiita-image-store.s3.amazonaws.com/0/142810/ce916f68-8479-76eb-7d1e-8389509b6558.png "スクリーンショット 2017-09-03 23.03.20 2.png")

### SSH接続
* SSHで接続する時の情報を入力します。

![スクリーンショット 2017-09-03 23.03.20 3.png](https://qiita-image-store.s3.amazonaws.com/0/142810/a6cda671-297b-049b-a31b-8d601e689919.png "スクリーンショット 2017-09-03 23.03.20 3.png")

### SSH ホスト

![スクリーンショット 2017-09-03 23.13.48.png](https://qiita-image-store.s3.amazonaws.com/0/142810/e8db5c95-978d-ff1f-bcf3-b12c0ec8e192.png "スクリーンショット 2017-09-03 23.13.48.png")

* 本番サーバのIPアドレスを入力します。

### SSHユーザ

![スクリーンショット 2017-09-03 23.14.51.png](https://qiita-image-store.s3.amazonaws.com/0/142810/886bfa61-4b13-b3d4-1823-67c97ce8ba38.png "スクリーンショット 2017-09-03 23.14.51.png")

* 本番サーバにSSH接続する時に使用するユーザ名を入力します。
* EC2だと、デフォルトはec2-userです。

### SSH鍵

![スクリーンショット 2017-09-03 23.16.35.png](https://qiita-image-store.s3.amazonaws.com/0/142810/e685cf30-8666-55eb-8359-886bfd34445a.png "スクリーンショット 2017-09-03 23.16.35.png")

* SSH接続する際に使用する鍵を選択します。

### SSHポート

![スクリーンショット 2017-09-03 23.17.37.png](https://qiita-image-store.s3.amazonaws.com/0/142810/c1d553a7-e676-80c5-224f-1cb250cdb751.png "スクリーンショット 2017-09-03 23.17.37.png")

* デフォルトのポート番号は、22です。
* 変更していた場合、それに合わせて入力してください。

#### 以上の入力すると、本番サーバのデータベースに接続することができます。

<br>
## RDSの場合
* RDSなどデータベースサーバを使用している場合は、以下のようにすれば接続できます。

![スクリーンショット 2017-09-03 23.18.50.png](https://qiita-image-store.s3.amazonaws.com/0/142810/a4db0535-316f-8ddc-a67d-b3ce134f09b7.png "スクリーンショット 2017-09-03 23.18.50.png")

* SSH接続は同じなので、データベースへの接続情報をRDSに合わせます。
* 基本的にはMySQLホストにRDS先を入れればOKです。


## 総括
以上で、Sequel PROを使用してデータベースに接続する方法を紹介しました。

SSH接続とデータベース接続の2段階の情報を入力すれば良いということがわかれば、簡単です。

もしわからないことがあれば、コメントしてください。