AL2023(Amazon Linux 2023)にdnfコマンドでMySQLをインストールしてみた。

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のインストールは完了です。テーブル作成後となりますが、操作イメージの画像をつけておきます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です