AmazonLinux2に最新のMariaDBをyumインストール

# AmazonLinux2へのMariaDBのインストール

通常の方法でMariaDBを導入する場合、次のような感じになります

```
$ sudo yum -y update
$ sudo yum -y install mariadb-server
```

これでインストールされるMariaDBのディストリビューションは `mariadb-server.x86_64 1:5.5.68-1.amzn2` (MariaDB 5.5.68) になります。

これを最新のディストリビューションにするためには、オフィシャルページの通り、yumのレポリストを作成（編集）して、その情報に基づいてインストールすることになります。

https://mariadb.org/download/?t=repo-config

念のためですが、バージョンが新しければ新しいほど良いというわけではありませんので、必要に応じて導入するバージョンを選択してください。（今回はサーバー設定からのスクラッチビルドだったため、ついでに最新版にしてみました）

https://qiita.com/katzueno/items/e735950c7440f232ef27

### インストール

オフィシャルサイトの方法では、AmazonLinux2はCentOS7に準じるため、以下のような内容を `/etc/yum.repos.d/MariaDB.repo` として保存します。（今回は10.11を導入）

```
# MariaDB 10.11 [RC] CentOS repository list - created 2023-**-** **:** UTC
# https://mariadb.org/download/
[mariadb]
name = MariaDB
# rpm.mariadb.org is a dynamic mirror if your preferred mirror goes offline. See https://mariadb.org/mirrorbits/ for details.
# baseurl = https://rpm.mariadb.org/10.11/centos/$releasever/$basearch
baseurl = https://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/yum/10.11/centos/$releasever/$basearch
module_hotfixes = 1
# gpgkey = https://rpm.mariadb.org/RPM-GPG-KEY-MariaDB
gpgkey = https://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1

```

これで `sudo yum -y install MariaDB-server MariaDB-client` とすればインストールが無事完了するはずですが、おそらく以下のようなエラーを吐いて終了してしまいます...

```
https://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/yum/10.11/centos/2/x86_64/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found
他のミラーを試します。

（中略）

failure: repodata/repomd.xml from mariadb: [Errno 256] No more mirrors to try.
https://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/yum/10.11/centos/2/x86_64/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found
```

ここでエラーをよく見ると、`.../centos/2/x86_64/repodata/repomd.xml` となっており、実際にこのURLを叩くと404エラーが返ってきます...でもよく考えてみると、確かにCentOS2は存在しないことがわかります。

これはレポファイルで `.../centos/$releasever/$basearch` と記述していることが原因で、`$releasever = 2` が返されてしまっています。なので、以下のように、`$releasever` ではなく `7` とレポファイルを書き換えてやればインストールが完了します。

```
$ sudo vi /etc/yum.repos.d/MariaDB.repo
```

```
# MariaDB 10.11 [RC] CentOS repository list - created 2023-**-** **:** UTC
# https://mariadb.org/download/
[mariadb]
name = MariaDB
# rpm.mariadb.org is a dynamic mirror if your preferred mirror goes offline. See https://mariadb.org/mirrorbits/ for details.
# baseurl = https://rpm.mariadb.org/10.11/centos/7/$basearch
baseurl = https://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/yum/10.11/centos/7/$basearch
module_hotfixes = 1
# gpgkey = https://rpm.mariadb.org/RPM-GPG-KEY-MariaDB
gpgkey = https://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1

```

```
$ sudo yum -y install MariaDB-server MariaDB-client

（中略）

インストール:
  MariaDB-client.x86_64 0:10.11.1-1.el7.centos                MariaDB-compat.x86_64 0:10.11.1-1.el7.centos               
  MariaDB-server.x86_64 0:10.11.1-1.el7.centos               

依存性関連をインストールしました:
  MariaDB-common.x86_64 0:10.11.1-1.el7.centos             boost-program-options.x86_64 0:1.53.0-27.amzn2.0.5            
  galera-4.x86_64 0:26.4.13-1.el7.centos                   libpmem.x86_64 0:1.3-3.amzn2                                  
  pv.x86_64 0:1.4.6-1.el7                                  socat.x86_64 0:1.7.3.2-2.amzn2.0.1                            

置換:
  mariadb.x86_64 1:5.5.68-1.amzn2                           mariadb-libs.x86_64 1:5.5.68-1.amzn2                          

完了しました!
```

これでサーバーを起動してログインすると、`10.11.1` がインストールされたことがわかります。

```
$ sudo systemctl start mysqld
$ mysql -uroot

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.11.1-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)]> quit;
Bye
```

以上、参考になれば幸いです！