Techniical-support

CentOS8にMySQL5.7をインストールしてみる

皆さんこんにちは。構築担当の川合です。

今回は、CentOS8にMySQL5.7をインストールした内容を記事にしたいと思います。
OSをリプレイスしてもアプリやパッケージの関係で新しいバージョンのミドルウェアがサポートされていない事はよくあるかと思います。

ただ、今回は普段とは勝手が大きく違ったので注意してもらえればと思います。

概要

CentOS8のOS標準のバージョンは、MySQL8になります。
ただ、前述の通りMySQL8だと不都合がある場合があるかと思います。

その場合は、1つ前のバージョンであるMySQL5.7の最新版をインストールすることで既存のアプリなどのシステム要件を満たす必要があります。
※MySQL5.6はサポート期限切れが近いので非推奨

事前確認

インストールするのは、mysql-comminuty-server の5.7系最新版になります。
まず、公式サイトを確認してみましょう。

MySQL5.7系最新(画像ですと、5.7.32)を選択すると、そもそもOS選択部分でRed Hat Enterprise Linux 8 == CentOS8 が表示されず、Red Hat 7までしか選択する事が出来ません。

各ファイルを個別にダウンロードする方法ではなく、公式のリポジトリを追加してみてrepoファイルの中身がどうなっているかも確認してみます。

以下の内容のように、repoファイルでもMySQL8の記載しかありません。

cat /etc/yum.repos.d/mysql-community.repo
抜粋
[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/8/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

従来通りMySQL5.7をインストールしようにも対象のパッケージを見つける事が出来ません。

作業準備

確認頂いた通り、MySQL5.7のパッケージはCentOS7までにしか配布されていません。
その為、CentOS7の配布先にあるパッケージを参照してインストールします。

今回は、現時点で提供されているMySQL5.7用の最新のリポジトリを追加してインストールしてみます。

https://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/

ここからMySQL5.7のパッケージとリポジトリファイルがダウンロードできます。
リポジトリは以下のものです。
https://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql57-community-release-el7-10.noarch.rpm

では、実際にサーバでリポジトリを追加してみます。

dnf install https://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql57-community-release-el7-10.noarch.rpm
メタデータの期限切れの最終確認: 1:26:50 時間前の 2020年12月13日 10時28分04秒 に実施しました。
mysql57-community-release-el7-10.noarch.rpm                                          507 kB/s |  25 kB     00:00    
依存関係が解決しました。
=====================================================================================================================
 パッケージ                              アーキテクチャー     バージョン            リポジトリー               サイズ
=====================================================================================================================
インストール:
 mysql57-community-release               noarch               el7-10                @commandline                25 k

トランザクションの概要
=====================================================================================================================
インストール  1 パッケージ

合計サイズ: 25 k
インストール済みのサイズ: 30 k
これでよろしいですか? [y/N]:

これでリポジトリを追加する事が出来ました。

repoファイルを確認してみます。

cat /etc/yum.repos.d/mysql-community.repo
抜粋
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

ちゃんとMySQL5.7の参照先が記載されています。

インストール

あとはインストールするだけなのですが、先にMySQLのモジュールを無効化します。
CentOS8からパッケージのインストールがモジュール単位で管理されており、デフォルトのままだとMySQL8がインストールされてしまいます。

dnf module disable mysql                                                             
メタデータの期限切れの最終確認: 0:01:18 時間前の 2020年12月13日 11時56分07秒 に実施しました。
依存関係が解決しました。
=====================================================================================================================
 パッケージ                 アーキテクチャー          バージョン                    リポジトリー               サイズ
=====================================================================================================================
モジュールの無効化:
 mysql                                                                                                              

トランザクションの概要
=====================================================================================================================

これでよろしいですか? [y/N]:
dnf module list mysql                                                                
メタデータの期限切れの最終確認: 0:01:22 時間前の 2020年12月13日 11時56分07秒 に実施しました。
CentOS Linux 8 - AppStream
Name                    Stream                      Profiles                            Summary                      
mysql                   8.0 [d][x]                  client, server [d]                  MySQL Module                 

ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled

ちなみにモジュールの無効化を実施しないと、以下のようにインストールする事が出来ません。

dnf install mysql-community-server
メタデータの期限切れの最終確認: 0:02:28 時間前の 2020年12月13日 11時56分07秒 に実施しました。
すべての検出結果は引数のモジュラーフィルタリングに一致しません(filter out): mysql-community-server
エラー: 一致するものが見つかりません: mysql-community-server

では、準備が整いましたのでインストールしてみます。

dnf install mysql-community-server
メタデータの期限切れの最終確認: 0:02:01 時間前の 2020年12月13日 11時56分07秒 に実施しました。
依存関係が解決しました。
=====================================================================================================================
 パッケージ                       アーキテクチャー バージョン                      リポジトリー                サイズ
=====================================================================================================================
インストール:
 mysql-community-server           x86_64           5.7.32-1.el7                    mysql57-community           173 M
依存関係のインストール:
 mysql-community-client           x86_64           5.7.32-1.el7                    mysql57-community            25 M
 mysql-community-common           x86_64           5.7.32-1.el7                    mysql57-community           308 k
 mysql-community-libs             x86_64           5.7.32-1.el7                    mysql57-community           2.3 M
 ncurses-compat-libs              x86_64           6.1-7.20180224.el8              baseos                      331 k

トランザクションの概要
=====================================================================================================================
インストール  5 パッケージ

ダウンロードサイズの合計: 201 M
インストール済みのサイズ: 876 M
これでよろしいですか? [y/N]:

これでようやくMySQL5.7をインストールする事が出来ました。

動作確認

特にエラーもなくインストールが完了すれば、後は通常通りMySQLの初期セットアップを進める形で大丈夫です。

MySQLの起動確認、MySQLの初期化を実施後、ログイン出来る事が確認出来れば一旦は大丈夫です。

まとめ

本来であれば、CentOS8を選択した時点でOSに付随するMySQL8を利用すべきなのでしょう。
なので、MySQLの公式サイトもCentOS8で古いMySQLを利用する事を想定していないと思われます。
その為、あえて古いバージョンを使うので少し特殊なやり方をせざるを得ません。

動作上は問題なく使えていますが、特殊な対応になる事はご注意ください。

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA