皆さんこんにちは。構築担当の川合です。
今回は、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を利用する事を想定していないと思われます。
その為、あえて古いバージョンを使うので少し特殊なやり方をせざるを得ません。
動作上は問題なく使えていますが、特殊な対応になる事はご注意ください。
プロフィール
サーバ構築周り全般を対応しております。
LINK
クラウドベリージャム:プロフィールページ