【　Ruby on Rails 6.0　】AWS + Nginx + Unicornでデプロイ③

# 始めに
前回の記事ではLinuxサーバーに必要なパッケージを諸々インストールしました。
今回はデータのやり取りを可能にするためにデータベースの設定を進めていきます。

# 目次
|目次|内容|
|:--:|:--:|
|セクション1|[EC2インスタンス作成](https://qiita.com/anago1030/items/854252bc9b728fe90beb)|
|セクション２|[Linuxサーバー構築](https://qiita.com/anago1030/items/07f7026c0f4c42a63440)|
|セクション3|**データベース設定**（今回の内容）|
|セクション4|[EC2上でGemをインストールし環境変数を設定](https://qiita.com/anago1030/items/0a9a8937421f64f46a44)|
|セクション5|[Railsアプリを起動](https://qiita.com/anago1030/items/36d0da7e25c57d0e5780)|
|セクション6|[Nginxの導入](https://qiita.com/anago1030/items/c4c80a46a75ff306db8d)|
|セクション7|[自動デプロイ](https://qiita.com/anago1030/items/cb60c8e99d408dc4fd80)|
|セクション8|[独自ドメイン取得](https://qiita.com/anago1030/items/5e487ec48fd7c0be86bc)|

## データベース設定
データベースには大きく3種類ありますが、最も利用されているのがエクセルの表のような形で情報を整理し、管理できる**リレーショナルデータベースです。**
そして、このリレーショナルデータベースを管理するソフトウェアは リレーショナル・データ・ベース・マネ ジメント・システム(RDBMS) と呼ばれます。
RDBMSの中でも代表的なものの一つが、**MySQL**です。

### MariaDB
MySQLの派生として開発されているオープンソースソフトウェアです。MySQLとの互換 性があります。今回デプロイカリキュラムで使用しているAmazon Linux 2ではMariaDB を利用していきます。

### MariaDBをインストール
Amazon Linux 2を利用している場合、MariaDBは yum コマンドからインストールすることができます。

```php:ターミナル
# インストール
$ sudo yum install -y mariadb-server
```
![スクリーンショット 2021-02-24 20.36.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/772095/310a603e-005d-828d-a4f7-ef60e6478f2c.png)

### データベースを起動
データベースを起動するために`systemctlコマンド`を利用します。これは、Amazon LinuxやCentOSに含まれているもので、インストールしたソフトウェアの起動を一括して 行えるツールです。

```php:ターミナル
[ec2-user@ip-172-31-25-189 ~]$ sudo systemctl start mariadb

#起動出来たかを確認
[ec2-user@ip-172-31-25-189 ~]$ sudo systemctl status mariadb

# active(running)と表示されれば成功
```

### データベースのrootパスワードの設定
`yum` でインストールしたMariaDBには、デフォルトでrootというユーザーでアクセス出来るようになっていますが、パスワードは設定されていません。パスワードを設定していきます。

パスワードは自身で決めることができます。忘れないパスワードを決めておきましょう。
この時、0から始まるpasswordは読み込んでくれないケースが多いので、避けましょう。(例えば、 0101password などはNG)

```php:ターミナル
[ec2-user@ip-172-31-25-189 ~]$ sudo /usr/bin/mysql_secure_installation
```
その後、以下のステップで実行していきます。

1. Enter current password for root (enter for none): と表示されたらEnterキーを押下
2. Set root password? [Y/n] と表示されたら Y を入力してEnterキーを押下
3. New password: と表示されたら自身で決めたパスワードを入力(特に画面には何も
表示されませんが入力できています)
4. Re-enter new password: と表示されたら、同じパスワードを入力(特に画面には
何も表示されませんが入力できています)

ここで、 ... Success! と表示されればパスワードの設定は完了です。しかし、
続けて細かい設定について答える必要があります。

1. Remove anonymous users? [Y/n] と表示されたら Y を入力してEnterキーを押下
2. Disallow root login remotely? [Y/n] と表示されたら Y を入力してEnterキー
を押下
3. Remove test database and access to it? [Y/n] と表示されたら Y を入力し
てEnterキーを押下
4. Reload privilege tables now? [Y/n] と表示されたら Y を入力してEnterキー
を押下

プロンプトが表示されたら設定は完了です。

### データベースへの接続確認
設定したパスワードが使えるか確認してみましょう。以下のコマンドを入力してくださ い。

```php:ターミナル
[ec2-user@ip-172-31-25-189 ~]$ mysql -u root -p
```
`Enter password：`とパスワードを要求されるので先程設定したパスワードを入力してEnterを押してください。
以下の画像のように表示されれば成功です。
![スクリーンショット 2021-02-24 20.44.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/772095/1408522c-7ad2-7641-4324-186eb628d4ad.png)
抜けたいときは`exit`と入力すれば大丈夫です！

# 終わりに
次回はEC２インスタンス上でRailsアプリを起動していきます。
Githubなどの外部ツールも使用していくのでできるだけわかりやすくまとめていきたいと思います。
お疲れさまでした。。。

次回
[EC2インスタンスにGemをインストールし環境変数を設定](https://qiita.com/anago1030/items/0a9a8937421f64f46a44)