CentOS 7にMySQL 5.7をyumでインストール

CentOS 7にMySQL 5.7をインストールする機会があり、yumで入れたらどのバージョンが入るかと思ったら、MySQLが見つからない。

CentOS7からはMariaDBが標準になっているとか。ここ数年、Docker使ったりマネージドサービス使ったりで、知らなかった...

MySQL用のリポジトリを追加すればできるということで、今更感がすごいがメモ。

作業

マニュアルのインストールガイドに沿って作業すればいいだけだが、5.7のマニュアルを読むより、最新バージョン(現時点では8.0)のマニュアルを読んだほうがわかりやすいかもしれない。

リポジトリの追加

素直に5.7のマニュアルを読んで作業すると、Yum Repository pageに8.0しかなくて戸惑った。旧バージョンのリポジトリもセットでインストールされるので、最新バージョンのrpmをインストールすればいい模様。

現時点では8.0が最新バージョンで、OSはRHEL7相当のため、 mysql80-community-release-el7-3.noarch.rpm が対象。

Yum Repository pageの「Download」ボタンをクリックすると、Oracleアカウントでログインを求められるが、ボタンの下の「No thanks, just start my download.」がリンクになっており、URLをコピーできる。また、わざわざDownloadまで進まなくても、rpmファイル名がわかれば、 https://dev.mysql.com/get/${rpmファイル名} がURLになる。

今回は yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm でインストール。

5.7のリポジトリの有効化

リポジトリをインストールしたのはいいが、このままだとMySQL8.0がインストールされてしまう。

yum repolist enabled | grep "mysql.*-community.*"
mysql-connectors-community/x86_64 MySQL Connectors Community                 141
mysql-tools-community/x86_64      MySQL Tools Community                      105
mysql80-community/x86_64          MySQL 8.0 Community Server                 161

yum info mysql-community-server
利用可能なパッケージ
名前                : mysql-community-server
アーキテクチャー    : x86_64
バージョン          : 8.0.19
リリース            : 1.el7
容量                : 436 M
リポジトリー        : mysql80-community/x86_64

yum repolist all | grep mysql
mysql-cluster-7.5-community/x86_64 MySQL Cluster 7.5 Community      無効
mysql-cluster-7.5-community-source MySQL Cluster 7.5 Community - So 無効
mysql-cluster-7.6-community/x86_64 MySQL Cluster 7.6 Community      無効
mysql-cluster-7.6-community-source MySQL Cluster 7.6 Community - So 無効
mysql-cluster-8.0-community/x86_64 MySQL Cluster 8.0 Community      無効
mysql-cluster-8.0-community-source MySQL Cluster 8.0 Community - So 無効
mysql-connectors-community/x86_64  MySQL Connectors Community       有効:    141
mysql-connectors-community-source  MySQL Connectors Community - Sou 無効
mysql-tools-community/x86_64       MySQL Tools Community            有効:    105
mysql-tools-community-source       MySQL Tools Community - Source   無効
mysql-tools-preview/x86_64         MySQL Tools Preview              無効
mysql-tools-preview-source         MySQL Tools Preview - Source     無効
mysql55-community/x86_64           MySQL 5.5 Community Server       無効
mysql55-community-source           MySQL 5.5 Community Server - Sou 無効
mysql56-community/x86_64           MySQL 5.6 Community Server       無効
mysql56-community-source           MySQL 5.6 Community Server - Sou 無効
mysql57-community/x86_64           MySQL 5.7 Community Server       無効
mysql57-community-source           MySQL 5.7 Community Server - Sou 無効
mysql80-community/x86_64           MySQL 8.0 Community Server       有効:    161
mysql80-community-source           MySQL 8.0 Community Server - Sou 無効

なので、8.0のリポジトリを無効化し、5.7のリポジトリを有効化する。

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

バージョンが5.7になっていることを確認。

yum repolist enabled | grep "mysql.*-community.*"
mysql-connectors-community/x86_64 MySQL Connectors Community                 141
mysql-tools-community/x86_64      MySQL Tools Community                      105
mysql57-community/x86_64          MySQL 5.7 Community Server                 404

yum info mysql-community-server
利用可能なパッケージ
名前                : mysql-community-server
アーキテクチャー    : x86_64
バージョン          : 5.7.29
リリース            : 1.el7
容量                : 175 M
リポジトリー        : mysql57-community/x86_64

MySQLインストール

あとはインストールするだけ。

yum install mysql-community-server

インストール中:
 mysql-community-libs           x86_64    5.7.29-1.el7                   mysql57-community    2.5 M
     mariadb-libs.x86_64 1:5.5.56-2.el7 を入れ替えます
 mysql-community-libs-compat    x86_64    5.7.29-1.el7                   mysql57-community    1.3 M
     mariadb-libs.x86_64 1:5.5.56-2.el7 を入れ替えます

そして、覚えのない mariadb-libs に驚いて中断。

yum list installed | grep mariadb
mariadb-libs.x86_64                  1:5.5.56-2.el7                 @base

baseパッケージグループでインストールされた模様。共有ライブラリで、 mysql-community-libs とも互換性があるため、更新して問題ない。

ということで、改めて yum install mysql-community-server でインストール。

振り返り

思い返してみると、yumでインストールしようとしてもバージョンが古く、毎回rpmからインストールしていたので、手間としては変わっていないのか。