AL2023(Amazon Linux 2023)にdnfコマンドでMySQLをインストールしてみました。その手順を記載しておきます。AL2023はLightsailで使用しています。
まずはリポジトリの取得です。MySQLのダウンロードサイトから「MySQL Yum Repository」を選択します。
リポジトリのセットアップパッケージの中から「Red Hat Enterprise Linux9/Oracle Linux9」を選択します。
ダウンロード画面になります。アカウントがなければ「No thanks, just start my download.」をクリックします。
ファイルがダウンロードされます。ダウンロードされたファイルは mysql84-community-release-el9-1.noarch.rpm というファイル名でした。
これをAL2023にアップロードします。scpコマンドを使います。LightsailDefaultKey.pem は ec2-user の秘密鍵ファイルです。
$ scp -i .ssh/LightsailDefaultKey.pem ./work/mysql84-community-release-el9-1.noarch.rpm ec2-user@xxx.xxx.xxx.xxx:~/
AL2023にrpmファイルがアップロードされていることが確認できたら、リポジトリのインストールをします。rootユーザーで行います。
# dnf install mysql84-community-release-el9-1.noarch.rpm
以下のコマンドで MySQL Yum リポジトリが正常に追加されたことを確認できます。
# dnf repolist enabled | grep "mysql.*-community.*"
インストールするパッケージは mysql-community-server であるため、情報を見てみます。
# dnf info mysql-community-server
dnf info で確認したところ、現状ではバージョン 8.4.0 のものがインストールされます。
それでは実際にMySQLのインストールをします。
# dnf install mysql-community-server
インストールされたMySQLのバージョンを確認しておきましょう。
# mysql --version
MySQLを起動します。
# systemctl start mysqld
起動できたか状態を確認しておきましょう。
# systemctl status mysqld
MySQLサーバーにログインする前にrootのパスワードを確認しておきます。rootのパスワードは /var/log/mysqld.log ファイルに出力されています。
# cd /var/log # cat mysqld.log
ログファイルに「A temporary password is generated for root@localhost: xxxxx」という文言があるので、探します。xxxxx となっているところがrootの初期パスワードです。
それではMySQLサーバーにログインしてみましょう。
# mysql -u root -p Enter password: :
Enter password: と尋ねられるのでrootの初期パスワードを入力します。正しくパスワード入力できれば、MySQLサーバーに入ることができます。プロンプトは mysql> という表示です。
rootのパスワードは変更しておきましょう。ALTER USER コマンドで変更します。
mysql> alter user 'root'@'localhost' identified by 'xxxxx';
xxxxx がパスワードになるのですが「Query OK」と表示されれば変更ができています。MySQLのパスワードポリシーにあわないと「ERROR 1819 (HY000): Your password does not satisfy the current policy requirements」と表示されますので、英字大文字小文字、記号を含めて再度パスワードを設定してみてください。
データベースの作成をします。
mysql> create database testdb;
testdb はデータベース名です。これは任意でつけることができます。作成したデータベースを確認しておきます。
mysql> show databases;
一覧に testdb が表示されます。
ユーザーを作成します。
mysql> create user 'test' identified by 'xxxxx';
test がユーザー名です。ユーザー名も任意でつけてください。xxxxx がパスワードですが、rootのパスワードのときと同じくパスワードポリシーにあわないとエラーになりますので気をつけてください。
test ユーザーが testdb を使用できるように権限を付与します。
mysql> grant all on testdb.* to 'test';
これで test ユーザーで testdb データベースに表の作成などができるようになります。一度、MySQLから抜けます。
mysql> exit Bye
test ユーザーでMySQLにログインしなおします。
$ mysql -u test -p Enter password: :
testdbを使用するようにします。
mysql> use testdb;
実テーブルを作ってみましょう。
mysql> create table SHOHIN(NUMBER INT(2) NOT NULL PRIMARY KEY, PRODUCT VARCHAR(20), PRICE INT(5));
行をインサートしてみます。
mysql> insert into SHOHIN (NUMBER, PRODUCT, PRICE) values (1, 'Apple', 120); mysql> insert into SHOHIN (NUMBER, PRODUCT, PRICE) values (2, 'Orange', 150); mysql> insert into SHOHIN (NUMBER, PRODUCT, PRICE) values (3, 'Banana', 100); mysql> commit;
select で抽出できることを確認します。
mysql> select * from SHOHIN;
これでMySQLのインストールは完了です。テーブル作成後となりますが、操作イメージの画像をつけておきます。