web-dev-qa-db-ja.com

libmysqlclient.so.18を使用したXtraBackupのインストール

現状

メインデータベースが実行されているVPS(Centos 5)にXtraBackupをインストールしたいと思います。 rpmのインストール中に、Perl(DBD::mysql)という依存関係が欠落していると表示されました。

その依存関係を_yum install_しようとすると、次のように表示されます。

Error: Missing Dependency: libmysqlclient.so.15(libmysqlclient_15)(64bit) is needed by package Perl-DBD-MySQL-3.0007-2.el5.x86_64 (base) Error: Missing Dependency: libmysqlclient.so.15()(64bit) is needed by package Perl-DBD-MySQL-3.0007-2.el5.x86_64 (base)

_/usr/lib/mysql_をチェックすると、libmysqlclient.so.15と呼ばれる存在しないシンボリックリンクがいくつかあります。動作するシンボリックリンクは_libmysqlclient.so_と_libmysqlclient_r.so_のみで、_/usr/lib64/libmysqlclient.so_へのシンボリックリンクである_libmysqlclient.so.18_にリンクされています。

バージョン18しかインストールされていないようです。

前の状況

また、XtraBackupを別のVPS(Centos 6)にインストールしました。まったく同じエラーがそこで発生しました。ついにそれを修正するために、mysqlの共有compat 5.1 lib(MySQL-shared-compat-5.1)をダウンロードしました。これは、12から16までのさまざまなバージョンのライブラリをカバーしていると思います。

その後、_MySQL-shared-compat-5.1_とXtraBackupをうまくインストールできました。残った唯一の問題は、PHPが_libmysqlclient.so.18_ファイルを使用するため、httpdサービスが開始されなくなることでした。私は(私が思うに)ダーティな修正でそれを修正しました。 。シンボリックリンクを作成するだけで_libmysqlclient.so.18 -> libmysqlclient.so.16_。その後、Apacheは問題なくロードされました。それでも、まったく正しく感じられません。

私はこれらのほとんどの経験があまりないので、可能であれば、ApacheとXtraBackupの両方をそれぞれのバージョンのlibmysqlclientで実行するための正しい修正方法を誰かが説明してくれることを願っています。

1
Martin

MySQLクライアントライブラリは、それらが構築されたMySQLのバージョンに関連付けられています。 PerlのDBD :: mysqlライブラリは、ビルド時に使用可能なMySQLクライアントライブラリに対してコンパイルされます。 Redhat(および拡張によりCentOS)がRPMをビルドする場合、ビルド時に提供されたソースからRPMをビルドします。

CentOS 5のデフォルトのMySQLインストールには、libmysqlclient.so.15を提供するMySQL5.0.95が付属しています。システムに新しいバージョンのMySQLがインストールされているようです。 PerconaのXtraBackupを使用している場合は、代わりにPercona Serverを実行している可能性があります(Percona Serverは、Perconaによって出力されたMySQLの更新ビルドです)。

いくつかのオプションがあります。

  1. PerconaサーバーがRPM経由でインストールされている場合:
    PerconaのリポジトリからPercona-Server-shared-compatRPMをインストールします

  2. 新しいバージョンのMySQLがRPM経由でインストールされている場合:
    CentOS6で行ったのと同様の互換性ライブラリを見つけてください。

  3. 新しいバージョンのMySQLが手動でインストールされている場合:
    libmysqlclient.so.18ファイルと関連する開発ヘッダーを含むシステムでPerl-DBD-mysqlソースRPMを再コンパイルし、結果のバイナリをインストールします。 CentOSは ソースRPMから再構築するための指示 を提供します。または、ソースからPerconaXtraBackupをダウンロードしてインストールすることもできます。

CentOS(およびRHEL)は、インストールするすべてのソフトウェアがRPMとyumを使用してインストールされることを期待しています。これを超えると、カスタムインストールにリンクされたソフトウェアにRPMを使用できなくなるリスクがあります。適切なバージョンのPerl-DBD-mysqlが利用できないだけでなく、新しいバージョンのMySQLに対してもPHPリンクされているため、ここではそのように聞こえます。

1
hrunting