こんにちは、@Manabu です。
Amazon Linux2のサポート期間が一年を切ってしまった…
AWSで開発をされている方で、こう思っている方は多いのではないでしょうか。
今回は、Amazon Linux2(以下、AL2)からAmazon Linux2023(以下、AL2023)に移行するための調査として、MySQL8.0をインストールする方法について紹介します!
失敗した時の原因についても記載しているので、ぜひ参考にして下さい。
失敗した原因
AL2023は、AL2と違い「dnfコマンド」を使用するようです。
まず、MySQLの公式リポジトリを追加してインストールを試みました。
// MySQLのリポジトリを追加
sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
// MySQLのインストール
sudo dnf install mysql-community-server
上記のコマンドを実行すると、以下のようなエラーが発生しました。
Public key for mysql-community-server-8.0.37-1.el9.x86_64.rpm is not installed.
Error: GPG check FAILED
エラーの内容は、以下です。
GPGキーが正しくインポートされていない
GPGキーが正しくないか、EC2内に存在していないためにエラーが発生しているようです。
:GNU Privacy Guard (GPG)キーは、ソフトウェアパッケージの信頼性と整合性を検証するためのデジタル署名です。これにより、ダウンロードしたパッケージが信頼できるソースから来ており、改ざんされていないことを確認できます。
/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
解決方法とインストール実行手順
ダウンロードした、MySQLリポジトリに設定されているGPGキーは存在していたので、何が足りないのか調査しました。
問題の解決方法
以下のGPGキーをインポートすることで問題は解決します。
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023
どうやらGPGキーの2022だけでなく2023のバージョンも必要みたいです。
インストールの実行手順
以下のコマンドを順番に実行することでMySQLサーバーをインストールすることができます。
// MySQLリポジトリのインストール
sudo dnf install -y https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
// GPGキーの2023バージョンをインポート
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023
// MySQLサーバーのインストール
sudo dnf install -y mysql-community-server
この後は、サーバーをスタートさせることができ、ログインしたりMySQLを使用することができるようになります。
MySQLのセットアップ
インストールしたMySQLサーバーは起動して、初期設定を行います。
MySQLサーバーの起動
以下のコマンドを実行して、インストールしたMySQLサーバーを起動します。
ステータスも確認しながら実行していきましょう。
// MySQLの起動コマンド
sudo systemctl start mysqld
// 起動のステータス確認コマンド
sudo systemctl status mysqld
// MySQLの自動起動コマンド
sudo systemctl enable mysqld
// 自動起動の確認コマンド
sudo systemctl is-enabled mysqld
// MySQLのバージョン確認コマンド
mysql --version
ステータスが「Actice」になっており、自動起動も「enabled」であれば正しく起動設定が行えています。
MySQLの初期設定
起動したMySQLサーバーに、Wordpressで使用するユーザーとDBを作成します。
最初に、初期登録されているrootユーザーのパスワードを変更する必要があるため、以下を実行してパスワードを変更します。
// 初期パスワードの確認
sudo grep 'temporary password' /var/log/mysqld.log
//以下のように表示されます。「your_temporary_password」の部分が初期パスワードです。
2024-06-24T00:00:00.000000Z 1 [Note] A temporary password is generated for root@localhost: your_temporary_password
// 初期パスワードを使用してMySQLにログイン
sudo mysql -u root -p
ログインしたら、初期パスワードを変更します。
// new_passwordが新規パスワードになるため、変更してください。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
続いて、Wordpressで使用するユーザーとDBを作成します。
// 「wordpress」がDB名、「wordpressuser」がユーザー名、「your_password」がユーザーのログインパスワードになります。
CREATE DATABASE wordpress;
CREATE USER 'wordpressuser'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
DB名、ユーザー名、ユーザーのログインパスワードは、ご自身で設定するようにお願いします。
まとめ
AL2023にMySQL8.0をインストールする方法を解説してきました。
複数のGPGキーを適切にインポートすることで、GPG署名の検証エラーを回避し、安全にMySQLをインストールすることができました。
今後、移行される方が多くなると思うので、この記事を参考にしていただいて少しでも問題が少なくなれば幸いです。