AmazonLinux2023でMySQL on EC2する
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