何番煎じかとは思うけど 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
以上。