MySQL 5.7 、MySQL8をインストール時にlibsasl2.so.2()(64bit)エラーが発生

MySQL5.7とMySQL8をインストールしたときに、「Error: Package: mysql-community-server Requires: libsasl2.so.2()(64bit)」が発生したので、その時の原因と対処方法を記載。

エラー内容

[rin@localhost lib64]$ sudo yum install mysql-community-server
メタデータの期限切れの最終確認: 0:04:21 時間前の 2022年11月14日 16時38分34秒 に実施しました。
エラー: 
 問題: ジョブの最良アップデート候補をインストールできません
  - libsasl2.so.2()(64bit) が提供されません mysql-community-server-5.7.40-1.el6.x86_64 に必要です
(インストール不可のパッケージをスキップするには、'--skip-broken' を追加してみてください または、'--nobest' を追加して、最適候補のパッケージのみを使用しないでください)

原因1と解消方法

CentOS7やRed Hat Enterprise Linux (RHEL) 7.1 など、一部のシステムでは「libsasl2.so.2」が 「libsasl2.so.3」に置き換えられましため、クライアントが libsasl2.so.2 をロードしようとしたときエラーが発生する。「libsasl2.so.2 」をロードしようとしたときに 「libsasl2.so.3」へリダイレクトされるように、「 libsasl2.so.3」へシンボリックリンクを作成して回避します。

$ cd /usr/lib64
$ sudo ln libsasl2.so.3 libsasl2.so.2
#念のためにyumをクリーンしている
$ sudo  yum clean all
$ sudo yum install mysql-community-server

原因2と解消方法

インストールしようとしているMySQLバージョンとLinuxのカーネルバージョンがマッチしていない。Linuxカーネルバージョンによって、「libsasl2.so.2」か「libsasl2.so.3」を利用するか異なるため、原因1の対象方法で解消しない場合は、原因2の可能性が高い。

unameコマンドで、カーネルバージョンを調べて「Linuxバージョン」を確認し、リポジトリを変更する。事例としては、カーネルバージョン3.10.0のCentOS7に対して、「Red Hat Enterprise Linux 6」リポジトリでインストールした時に現象が発生した。

[suna@localhost ~]$ uname -r
3.10.0-1160.80.1.el7.x86_64
[suna@localhost ~]$ 

Linuxバージョン

【MySQL公式】yumリポジトリ

バージョンカーネルバージョンパッケージ名
Red Hat Enterprise Linux 2.1RHEL 2.1 Update1~72.4.9
Red Hat Enterprise Linux 3RHEL 3 Update1~8 or RHEL 3.92.4.21
Red Hat Enterprise Linux 4RHEL 4 Update 1~4 or RHEL 4.5~RHEL 4.92.6.9
Red Hat Enterprise Linux 5RHEL 5.1 ~ RHEL 5.112.6.18
Red Hat Enterprise Linux 6RHEL 6.1 ~ RHEL 6.102.6.32Red Hat Enterprise Linux 6 / Oracle Linux 6 (Architecture Independent), RPM Package
Red Hat Enterprise Linux 7RHEL 7.1 ~ RHEL 7.93.10.0Red Hat Enterprise Linux 7 / Oracle Linux 7 (Architecture Independent), RPM Package
Red Hat Enterprise Linux 8RHEL 8.0 ~ RHEL 8.64.18
Red Hat Enterprise Linux 8 / Oracle Linux 8 (Architecture Independent), RPM Package
Red Hat Enterprise Linux 9RHEL 9.05.14Red Hat Enterprise Linux 9 / Oracle Linux 9 (Architecture Independent), RPM Package

YumリポジトリURL(参考)

#Red Hat Enterprise Linux 9
https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
#Red Hat Enterprise Linux 8
wget https://dev.mysql.com/get/mysql80-community-release-el8-4.noarch.rpm
#Red Hat Enterprise Linux 7
wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
#Red Hat Enterprise Linux 6
wget https://dev.mysql.com/get/mysql80-community-release-el6-7.noarch.rpm

rpmコマンドでリポジトリパッケージの再インストール

$sudo rpm -qa | grep mysql
$sudo rpm -e パッケージ名
$sudo rpm -qa | grep mysql
$sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm