Techniical-support

CentOS8でのMySQLの共有ライブラリについて

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

今回は、CentOS8・RHEL8 でnagiosのプラグインをインストールする時に遭遇した問題について記事にしたいと思います。

英語のQAサイトなどで部分的に情報は取得出来たのですが、ちゃんと理解出来なかったので記事にまとめてみました。

概要

MySQLのサーバもしくはクライアントをインストールすると、MySQLの共有ライブラリが指定のディレクトリ配下にインストールされます。

CentOS6系やCentOS7系では、特段OS標準ではないMySQLをインストールしても影響がなかった認識だったのですが、CentOS8系ではエラーに見舞われました。

OSの問題というよりnagiosのパッケージ側の仕様による部分が多いのかと思いますが、OS標準のMySQLに付随する共有ライブラリのバージョンに依存しているようです。

動作確認

OS標準のMySQL8をインストールしている場合は問題ありません。
ですが、OS標準のバージョン・もしくはMySQLではなくMariaDBの最新バージョンをインストールしている場合は注意が必要です。

ちなみに、前回の記事で検証環境にMySQL5.7をインストールしていたので確認してみました。

ls -la /usr/lib64/mysql/
合計 9492
drwxr-xr-x   4 root root      94 12月 13 12:00 .
dr-xr-xr-x. 58 root root   40960 12月 13 12:00 ..
lrwxrwxrwx   1 root root      25  9月 23 22:05 libmysqlclient.so.20 -> libmysqlclient.so.20.3.19
-rwxr-xr-x   1 root root 9647032  9月 23 21:59 libmysqlclient.so.20.3.19
drwxr-xr-x   4 root root      28 12月 13 12:00 mecab
drwxr-xr-x   3 root root    4096 12月 13 12:00 plugin

MySQL5.7をインストールした時は、libmysqlclient.so.20 がインストールされていました。

この状態で一度nagiosのプラグインをインストールしてみます。

dnf install --enablerepo=epel nagios-plugins-mysql
メタデータの期限切れの最終確認: 0:00:26 時間前の 2020年12月13日 12時07分50秒 に実施しました。
エラー: 
 問題: package nagios-plugins-mysql-2.3.3-4.el8.x86_64 requires libmysqlclient.so.21()(64bit), but none of the providers can be installed
  - package nagios-plugins-mysql-2.3.3-4.el8.x86_64 requires libmysqlclient.so.21(libmysqlclient_21.0)(64bit), but none of the providers can be installed
  - conflicting requests
  - package mysql-libs-8.0.21-1.module_el8.2.0+493+63b41e36.x86_64 is filtered out by modular filtering
(インストール不可のパッケージをスキップするには、'--skip-broken' を追加してみてください または、'--nobest' を追加して、最適候補のパッケージのみを使用しないでください)

libmysqlclient.so.21 が要求されています。
前述の通りlibmysqlclient.so.20しかないのでエラーとなっています。

ちなみにMariaDBの10.5系でも同様にエラーになりました。

OS標準のMySQLをインストールすると以下のようになります。
libmysqlclient.so.21がちゃんとありますので、インストールは失敗しません。

ls -la /usr/lib64/mysql
合計 7164
drwxr-xr-x   2 root root      67 12月 13 12:11 .
dr-xr-xr-x. 58 root root   40960 12月 13 12:09 ..
lrwxrwxrwx   1 root root      25  9月 16 00:42 libmysqlclient.so.21 -> libmysqlclient.so.21.1.21
-rwxr-xr-x   1 root root 7267032  9月 16 00:45 libmysqlclient.so.21.1.21

回避方法

プラグインに必要とされる共有ライブラリをインストールする事が出来ないので、nagios-plugins-mysql をインストール対象から除外しました。
元々は上記のプラグインを含め複数のプラグインをインストール予定でしたが、別の監視方法にて代用する事にして、CentOS8系では該当プラグインを利用しない事となりました。

既にインストールしている場合は、MySQLのインストール時にエラーとなってしまうため一度パッケージを削除してMySQLをインストール後に指定のプラグインのみをインストールしてください。

まとめ

CentOS8系のOS標準のMySQL以外を使う場合には注意が必要です。
監視用途で利用予定でしたが、そもそもインストールする事が出来ないので別の監視方法で代用する事となりました。
OS周りがアップデートされると今まで利用出来ていたものが急に利用出来なくなったりするので、事前に検証が必要だと感じました。
※検証したつもりでも抜け漏れがあるので難しいものです

返信を残す

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

CAPTCHA