本番環境でデータベースを作成する

##はじめに
「AWSのサーバーを利用する」ための手順を5つに分けて書いています。

記事は以下にまとめておりますのでご確認ください。

①[EC2の初期設定](https://qiita.com/maca12vel/items/902dde37a267ceca1c53)
②[本番環境でデータベースを作成する](https://qiita.com/maca12vel/items/68d6ae3d4308e330847d) ← イマココ 
③[EC2のRailsを起動する](https://qiita.com/maca12vel/items/2a04d39f958b53d687e2)
④[Webサーバーを設定する](https://qiita.com/maca12vel/items/35f9fb73bb21cb4869fb) 
⑤[デプロイを自動化する](https://qiita.com/maca12vel/items/7b33dd6ea1ad556e3fec)

##データベースの用意
データベースには以下のような種類がる。

・階層型データベース
・ネットワーク型データベース
・リレーショナルデータベース

この中でもっとも利用されているのが``「リレーショナルデータベース」``
エクセルの表のような形で情報を整理し、管理できる。
そして、このリレーショナルデータベースを管理するソフトウェアは
**リレーショナル・データ・ベース・マネジメント・システム（RDBMS）**と呼ばれる。

そんなRDBMSの中でも代表的なものの1つが``MySQL``
そして、MySQLから派生した``MariaDB``というデータベースもある。

「MariaDB」とは、MySQLの派生として開発されているオープンソースソフトウェア。
MySQLとの互換性があります。Amazon Linux 2ではMariaDBを使用することになっている。

※基本的にMariaDBとMySQLは同様のものと考えて差し支えないです。



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

ターミナル（EC2内）で以下のコマンドを実行

```
[ec2-user@ip-***-**-**-*** ~]$ sudo yum -y install mysql56-server mysql56-devel mysql56 mariadb-server mysql-devel
```

##データベースを起動
データベースを起動するために「systemctlコマンド」を利用します。

ターミナル（EC2内）で以下のコマンドを実行

```
[ec2-user@ip-***-**-**-*** ~]$ sudo systemctl start mariadb
```

起動できたか確認するために、以下のコマンドを実行

```
[ec2-user@ip-***-**-**-*** ~]$ sudo systemctl status mariadb

● mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled)
   Active: active (running) since 土 2020-02-29 07:00:11 UTC; 7s ago
  Process: 5993 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=0/SUCCESS)
  Process: 5957 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS)
```

「active (running) 」と緑色の表示がされれば、データベースの起動は成功

##データベースのrootパスワードの設定
yumでインストールしたMariaDBには、デフォルトで「root」というユーザーで
アクセスできるようになっていますがパスワードは設定されていません。
パスワードを設定する必要があります。

※ 0から始まるpasswordは読み込んでくれないケースが多いので避ける

ターミナル（EC2内）で以下のコマンドを実行

```
[ec2-user@ip-***-**-**-*** ~]$ sudo /usr/bin/mysql_secure_installation
```

###その後、以下のステップで実行
①Enter current password for root (enter for none): 」と表示されたらEnterキーを押す
②「Set root password? [Y/n]」と表示されたら「Y」を入力してEnterキーを押す
③「New password:」と表示されたら自身で決めたパスワードを入力（※とくに画面には何も表示されないが入力できている）
④「Re-enter new password:」と表示されたら、同じパスワードを入力（とくに画面には何も表示されないが入力できている）

ここで「... Success!」と表示されればパスワードの設定は完了。続けて細かい設定について答える必要がある。

⑤「Remove anonymous users? [Y/n]」と表示されたら「Y」を入力してEnterキーを押す
⑥「Disallow root login remotely? [Y/n]」と表示されたら「Y」を入力してEnterキーを押す
⑦「Remove test database and access to it? [Y/n]」と表示されたら「Y」を入力してEnterキーを押す
⑧「Reload privilege tables now? [Y/n]」と表示されたら「Y」を入力してEnterキーを押す

プロンプトが表示されたら設定は完了

##データベースへの接続を確認
さきほど設定したパスワードが使えるか確認する

ターミナル（EC2内）で以下のコマンドを実行

```
[ec2-user@ip-***-**-**-*** ~]$ mysql -u root -p
```

「Enter password:」とパスワードを入力するように表示されるので、
さきほど設定したパスワードを入力して、Enterキーを押す。
以下のように表示されれば、データベースの設定は終了。

```
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 142
Server version: 5.5.64-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 
```

「exit」と入力すれば終了できる。

---

以上です。お疲れ様でした。

続きは → [こちら](https://qiita.com/maca12vel/items/2a04d39f958b53d687e2)