CentOS 7にMySQL 5.7をインストールする機会があり、yumで入れたらどのバージョンが入るかと思ったら、MySQLが見つからない。
CentOS7からはMariaDBが標準になっているとか。ここ数年、Docker使ったりマネージドサービス使ったりで、知らなかった...
MySQL用のリポジトリを追加すればできるということで、今更感がすごいがメモ。
作業
マニュアルのインストールガイドに沿って作業すればいいだけだが、5.7のマニュアルを読むより、最新バージョン(現時点では8.0)のマニュアルを読んだほうがわかりやすいかもしれない。
- 5.7: MySQL :: MySQL 5.7 Reference Manual :: 2.5.1 Installing MySQL on Linux Using the MySQL Yum Repository
- 8.0: MySQL :: MySQL 8.0 Reference Manual :: 2.5.1 Installing MySQL on Linux Using the MySQL Yum Repository
リポジトリの追加
素直に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からインストールしていたので、手間としては変わっていないのか。