AWS EC2インスタンスにLAMP環境構築する際に、MySQLインストールでエラーに詰まったのでメモメモ。
エラーの原因を結論から言えば、AmazonLinux2にはデフォルトでMySQLは用意されておらず、MariaDBがちょこんと居座ってること。そのため対処として公式ページからMySQLをインストールして、MariDB消せばOKである。
##前提
- Amazon Linux 2 AMI (HVM) SSD Volume Type
- MySQL Ver 14.14 Distrib 5.7.30, for Linux (x86_64) ←これを入れたい
##過程と対処
EC2インスタンスにssh接続後、ApacheとPHPをyumインストール。問題なく進み、そのノリでMySQLもインストール。
yum install -y mysql-community-server
ここでNo package mysql-community-server available.
とエラーを返される。どうやらパッケージがないらしい。以下で調べてみると確かに無かった。
yum list mysql*
そこで、公式から追加することに(→MySQL Yum Repository)。ただしAmazonLinux2はcentOS7ベースということなので、追加するのはel7を選択。
yum install http://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
ちゃんとリポジトリに追加されてるかを次で確認
yum repolist
mysql80-community-release-el7-3.noarch
を確認。使用したいバージョンは5.7なので、5.7を有効化させる必要がある(最新バージョンの8.0のインストールによって旧バージョン5.7のリポジトリもセットでインストールされる)。
vi /etc/yum.repos.d/mysql-community.repo
mysql-communityのレポジトリ設定をいじる。上のコマンドで設定ファイルを開いたらMysql8.0のenabledの欄を0にして、Mysql5.7のenabledの欄を1に変更する。これによってインストールの方向が5.7に向く。
さて、これでyum install mysql-community-server
で解決かと思えば、次は依存関係のエラーが発生。エラー文を確認するとAvailable: 1:mariadb-libs
の文字列を数件発見。MariaDB...?
どうやらAmazonLinux2(CentOS7も同様)ではMariaDBがデフォルトで入っており、MySQLインストールの際に邪魔になってしまうらしい。今回はMySQL使いたいので、MariaDBを削除することに。
yum remove mariadb-libs
これの後にyumインストールしたら無事に解決しました。
##参考
[CentOS 7にMySQL 5.7をyumでインストール]
(https://hepokon365.hatenablog.com/entry/2020/03/20/235538)
AWS Amazon Linux2にMySQL5.7を構築する
Amazon Linux2でmysqlを入れようとしたらエラーが出た
パッケージ依存関係を解消する(rpm)