AWS: 簡単なLAMPサーバーでWordPressを動かすまで（Intel Mac） 〜MariaDBをインストール〜

# はじめに
AWSハンズオンの学習記録です。
2022年8月の情報をもとに投稿します。

ゴールは、EC2を使って簡易的な仮想サーバーを作り、ブログソフトであるWordPressをインストールします。
また、WordPressを外部公開できることを想定しています。

**今回はデータベースである「MariaDB」のインストール方法を投稿します。**

尚、ハンズオンがメインのため、各サービスの概要や用語の解説は極力省かせていただきます。
### ゴール
仮想サーバーでWordPressを使える状態にします

### ゴールまでの流れ

[1.VPCとサブネットを作成](https://qiita.com/holySh10/items/749b98e320fc71e6739e)
[2.EC2を作成／セキュリティグループの設定](https://qiita.com/holySh10/items/90a3501d819f1ae2c7cd)
[3.EC2へSSH接続](https://qiita.com/holySh10/items/689f4c83cd18db128983)
[4.Webサーバーである「Apache」をインストール](https://qiita.com/holySh10/items/53ec78d420e372643c55)
[5.プログラミング言語である「PHP」をインストール](https://qiita.com/holySh10/items/90507e2b03ee6c681790)

:::note info
6.データベースである「MariaDB」をインストール（本記事ではここを解説します）
:::
[7.WordPressをインストール](https://qiita.com/holySh10/items/cd3db43cf0e951705c31)

### 本記事の目的
・MariaDBのインストール方法を理解します
・`mysql`コマンドの操作方法を理解します
・データベースの作成方法を理解します

### 動作環境
・MacBook Pro (Retina, 13-inch, Late 2013)
・macOS: Big Sur 11.6.1
・CPU: Intel
・メモリ: 8GB

# MariaDBインストールからデータベース作成までの流れ
>**MariaDB**とは、オープンソースのリレーショナルデータベース管理システムである**MySQL**から派生したものです。
派生した経緯などは割愛しますが、基本的なコマンドや機能はMySQLと共通点が多いです。

>①、②、③までは[前回記事](https://qiita.com/holySh10/items/90507e2b03ee6c681790)と同じ流れです。
#### ①EC2インスタンスへSSH接続
詳しくは[こちら](https://qiita.com/holySh10/items/689f4c83cd18db128983)
#### ②root ユーザーに切り替える
詳しくは[こちら](https://qiita.com/holySh10/items/53ec78d420e372643c55#root-%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%AB%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88%E3%82%8B)
#### ③Apacheを起動する
詳しくは[こちら](https://qiita.com/holySh10/items/53ec78d420e372643c55#apache%E3%82%92%E8%B5%B7%E5%8B%95%E3%81%99%E3%82%8B)
#### ④MariaDBをインストールする
以下の`yum`コマンドを入力します↓
```
# yum install mariadb mariadb-server
```
returnキーを押下すると、以下の情報が出力されます↓ *※途中省力します*
```
~~~~省略します~~~~
================================================================================
 Package             アーキテクチャー
                                 バージョン               リポジトリー     容量
================================================================================
インストール中:
 mariadb             x86_64      1:5.5.68-1.amzn2         amzn2-core      8.8 M
 mariadb-server      x86_64      1:5.5.68-1.amzn2         amzn2-core       11 M

トランザクションの要約
================================================================================
インストール  2 パッケージ

総ダウンロード容量: 20 M
インストール容量: 106 M
Is this ok [y/d/N]:
```
`y`を入力しreturnキーを押下すると、以下の情報が出力されます↓ *※途中省略します*
```
Downloading packages:
(1/2): mariadb-5.5.68-1.amzn2.x86_64.rpm                   | 8.8 MB   00:00     
~~~~省略します~~~~
インストール:
  mariadb.x86_64 1:5.5.68-1.amzn2     mariadb-server.x86_64 1:5.5.68-1.amzn2    

完了しました!
```
上記のように`完了しました!`や`Complete!`と表示されれば成功です。
#### ⑤MariaDBにおけるユーザーとパスワードを設定する
###### a.)root ユーザーでログインする
以下のコマンドを入力します↓
```
# mysql -u root -p
```
:::note
初期状態はroot ユーザーしか設定されていないので、上記コマンド入力後にreturnキーを押下してログインします。
:::
###### b.)パスワードを入力する
成功すると以下のコマンドが出力されます↓
```
Enter password:
```
:::note
初期状態はパスワードが設定されていないので、何も入力せずにそのままreturnキーを押下します。
:::
次に以下の情報が出力されます↓
```
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.68-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)]>
```
上記の最後の行のように`MariaDB [(none)]>`というプロンプトが表示されれば成功です。
###### c.)root ユーザーのパスワードを変更する
セキュリティの観点から、以下のコマンドを入力してroot ユーザーのパスワードを変更します。
```
MariaDB [(none)]> update mysql.user set password=password('変更予定のパスワード') where user ='root';flush privileges;
```
:::note warn
細かいですが、ここで使用するのは「'」（シングルクオート）です。「`」（バッククオート）と間違えないように注意しましょう。
:::
成功すると以下の情報が出力されます↓
```
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4  Changed: 4  Warnings: 0

Query OK, 0 rows affected (0.00 sec)
```

#### ⑥データベースを作成する
ここではユーザー名を、例として`user`として解説します。パスワードは前項目で変更したものを使用します。
###### a.)MariaDBのユーザーを作成する
以下のコマンドを入力します↓
```
MariaDB [(none)]> create user 'user'@'localhost' IDENTIFIED BY '変更したパスワード';
```
成功すると以下のコマンドが出力されます↓
```
Query OK, 0 rows affected (0.00 sec)
```
###### b.)データベースを作成する
ここでは例として`userdb`というデータベース名で作成します。

以下のコマンドを入力します↓
```
MariaDB [(none)]> create database userdb;
```
データベース名の作成方法は、前項目で入力したユーザー名である`user`の後にそのまま`db`を入力します。

成功すると以下のコマンドが出力されます↓
```
Query OK, 1 row affected (0.00 sec)
```
###### c.)作成したユーザーに全権限を付与する
作成したデータベースの全権限を付与します。

以下のコマンドを入力します↓
```
MariaDB [(none)]> grant all privileges on userdb.* to "user"@"localhost"; FLUSH PRIVILEGES;
```
内訳としては、少し長いですが
`grant all privileges on (作成したデータベース名).* to "作成したユーザー名"@"localhost"; FLUSH PRIVILEGES;`
「作成したデータベース名」と「作成したユーザー名」の入力箇所を間違えないようにしましょう。

成功すると以下のコマンドが出力されます↓
```
Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)
```
#### ⑦データベースが作成できたかを確認する
本記事最後のステップです。

以下のコマンドを入力しデータベースが作成できたかを確認します↓
```
MariaDB [(none)]> show databases;
```
以下の情報が出力されます↓
```
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
| userdb             | ←ここの「userdb」があればOK
+--------------------+
5 rows in set (0.00 sec)
```
上記のように、作成したデータベース名である`userdb`が表示されていれば成功です。
# あとがき
今回はMariaDBのインストールからデータベース作成方法までの流れを投稿しました。MariaDBはMySQLの代替えとして使用されることが多くなってきているようです。

次回はいよいよ[WordPressをインストールし、公開できる状態にしたい](https://qiita.com/holySh10/items/cd3db43cf0e951705c31)と思います。

ここまでご覧いただき、今回も誠にありがとうございます。