全力で怠けたい

怠けるために全力を尽くしたいブログ。

MySQL 5.7 を EC2 にインストールする手順のメモ。

何番煎じかとは思うけど MySQL 5.7 を EC2 にインストールする手順をメモしておく。

EC2 は Amazon Linux 2 AMI を使ってる。

$  cat /etc/system-release
Amazon Linux release 2 (Karoo)

MySQL 5.7 を EC2 にインストールする手順

MySQL 5.7 を EC2 にインストールすることがちょいちょいあるけど毎回微妙に手順を忘れてたり調べたりして面倒くさいので手順をメモしておく。

以後の手順は EC2 にログインしてやっていく。

前準備

とりあえず yum update コマンドを実行してあと mariadb は削除しておく。

$ sudo yum update -y
$ sudo yum remove -y mariadb-libs

MySQLリポジトリyum に追加

yum install コマンドで MySQLリポジトリyum に追加していく。

MySQLリポジトリの URL は https://dev.mysql.com/get/<rpm ファイル名> になるのだけどこの URL の調べ方を書いておく。

rpm のファイル名は https://dev.mysql.com/downloads/repo/yum/Red Hat Enterprise Linux 7 / Oracle Linux 7 (Architecture Independent), RPM Package のところつまり RHEL7 のダウンロードボタンを押すとログインするかサインアップするかのページが表示するので、ページの下のほうの No thanks, just start my download. のリンク先が MySQLリポジトリの URL になる。

$ sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

$ yum list installed | grep mysql
mysql80-community-release.noarch      el7-3                            installed

MySQL 5.7 を有効にする

MySQLリポジトリyum に追加するとデフォルトは MySQL 8.0 が有効になっているので sudo yum-config-manager コマンドで MySQL 8.0 は無効にして MySQL 5.7 を有効にしていく。

$ yum repolist all | grep -E "mysql[0-9]+-community/x86"
mysql55-community/x86_64             MySQL 5.5 Community Server     無効
mysql56-community/x86_64             MySQL 5.6 Community Server     無効
mysql57-community/x86_64             MySQL 5.7 Community Server     無効
mysql80-community/x86_64             MySQL 8.0 Community Server     有効:    229

$ sudo yum-config-manager --disable mysql80-community
$ sudo yum-config-manager --enable mysql57-community

$ yum repolist all | grep -E "mysql[0-9]+-community/x86"
mysql55-community/x86_64             MySQL 5.5 Community Server     無効
mysql56-community/x86_64             MySQL 5.6 Community Server     無効
mysql57-community/x86_64             MySQL 5.7 Community Server     有効:    484
mysql80-community/x86_64             MySQL 8.0 Community Server     無効

MySQL 5.7 のインストールと起動

yum install コマンドで MySQL をインストールして systemctl start mysqld コマンドで mysqld を起動する。 あと systemctl enable mysqld コマンドで mysqld がシステム起動時に起動するようにしておく。

$ sudo yum install -y mysql-community-server

$ sudo systemctl start mysqld
$ systemctl status mysqld.service
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since 土 2021-04-03 05:52:47 UTC; 13s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 3895 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
  Process: 3846 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 3900 (mysqld)
   CGroup: /system.slice/mysqld.service
           └─3900 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

$ sudo systemctl enable mysqld

MySQL のバージョンを確認しておく。 mysql --version コマンドを実行すると 5.7.33 が表示しててちゃんと MySQL 5.7 が動いているよう。

$ mysql --version
mysql  Ver 14.14 Distrib 5.7.33, for Linux (x86_64) using  EditLine wrapper

root ユーザーのデフォルトのパスワードの調べ方

MySQL の root ユーザーのデフォルトのパスワードは MySQL のログに記載しているのでログを見たら root ユーザーのパスワードが分かる。

$ sudo grep 'temporary password' /var/log/mysqld.log
2021-04-03T05:52:45.375037Z 1 [Note] A temporary password is generated for root@localhost: LTaGlt2Q?>u3

あとは mysql コマンドで MySQL に接続して適当にパスワードを変えておく (間違ってもこの例みたいな適当なパスワードにしてはいけない)

$ mysql -uroot -p'LTaGlt2Q?>u3'

mysql> set password for root@localhost='abCD1234@';
Query OK, 0 rows affected (0.00 sec)

この記事で書いたやつを全部やるスクリプト

この記事で書いたやつを全部やるスクリプトを Gist に置いといた => https://gist.github.com/ebc-2in2crc/d5c0976b4f039764e780049822acc329

こんな感じで sh に流し込んだら全部やってくれる。

$ curl https://gist.githubusercontent.com/ebc-2in2crc/d5c0976b4f039764e780049822acc329/raw/4b44907d376e95843bdd635021761be73f56c5b3/install-mysql5.7-on-ec2.sh | sh

以上。

参考サイト