AmazonLinux2023でMySQL on EC2する

2024/09/04に公開

AmazonLinux2023は使っていますか?
fedoraのコンポーネントにAWS独自の思想も入って、なかなかクセが強いですよね。

先日、故あってそんなAmazonLinux2023を使ってMySQL on EC2を立てる機会がありましたので、手順書を兼ねた備忘録を残します。
ある程度OS理解にもつながるかなと思います。

目指すゴール

AmazonLinux2023のEC2に立てたMySQL8.0へ、rootユーザーでログインできる状態

手順

  • MySQLのリポジトリを入れる
sudo dnf install https://repo.mysql.com//mysql84-community-release-el9-1.noarch.rpm

rpmパッケージの名前はyum repositoryのページでコピペしてください。AmazonLinux2023はrhel9系の親戚であるため、Red Hat Enterprise Linux 9と書かれているもののパッケージ名をコピーすれば大丈夫。
また、このコマンド以降全てのdnfコマンドをyumコマンドに読み替えても同様の結果が得られますが、裏側では結局dnfのパッケージマネージャーが動いています。これはyumコマンドがdnfコマンドのポインタとして用意されているAmazonLinux2023の特性によるものです。

  • 有効なリポジトリを確認
dnf repolist enabled | grep "mysql.*-community.*"

実行結果例

 mysql-8.4-lts-community         MySQL 8.4 LTS Community Server
 mysql-connectors-community      MySQL Connectors Community
 mysql-tools-8.4-lts-community   MySQL Tools 8.4 LTS Community

現在有効になっているリポジトリを確認しましょう。
この記事のようにmysql84から始まるリポジトリを入れた場合、デフォルトではMySQL8.4のパッケージが有効になっているはずです。

  • 利用可能なMySQL関連のリポジトリを確認
dnf repolist all | grep mysql
  • MySQL8.0のリポジトリを使うように変更
sudo dnf config-manager --disable mysql-8.4-lts-community
sudo dnf config-manager --disable mysql-tools-8.4-lts-community
sudo dnf config-manager --enable mysql80-community
sudo dnf config-manager --enable mysql-tools-community

基本的に業務や個人開発で使おうと思ったらLTS版をdisableにすることはないですが、今回は検証目的だったため、あえてMySQL8.0にしました。

  • インストール
sudo dnf install mysql-community-server
  • mysqldの起動と有効化
sudo systemctl start mysqld
sudo systemctl enable mysqld
  • rootユーザーの初期パスワードを確認
sudo less /var/log/mysqld.log
  • MySQLへrootユーザーでログイン
mysql -uroot -p

これでrootログインまで完了し、今回のゴールにたどり着きました。

まとめ

ちゃんと動く状態になりましたか?
落とし穴になりうる点としては、yumコマンドがdnfコマンドのポインタであることですかね。この影響でリポジトリの無効化・有効化周りのコマンドには明確な違いがでます。AmazonLinux2のEOLに伴って触り始めた方は少し戸惑うかもしれません。
私はyumとaptしか触ってこなかったため、ちょっと苦労しました。

この記事が少しでもお役に立てば幸いです。

ほな。

Discussion