@ShaneShen

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Oracle Linux上のOGG 19c for MySQLでggsci起動時にlibmysqlclient.so.21関連のエラー

解決したいこと

Oracle Linux 8.10 環境に Oracle GoldenGate (OGG) 19.1 for MySQL と MySQL Server 8.4.5 をインストールしました。
OGG の ggsci コマンドを実行しようとすると、共有ライブラリ libmysqlclient.so.21 が見つからない、またはバージョンが異なるといったエラーが発生し起動できません。

MySQL 8.4.5 の lib ディレクトリには libmysqlclient.so.24 が存在していることを確認しています。
OGG 19c for MySQL が特定の libmysqlclient.so バージョン(この場合は .21)に依存しているのか、それとも実行時に使用するライブラリパスやバージョンを指定する方法があるのかを知りたいです。最終的には ggsci を正常に起動させたいと考えています。

発生している問題・エラー

  1. ggsci 実行時の初期エラー:

    [grid@ole810 oggm]$ ./ggsci
    ./ggsci: error while loading shared libraries: libmysqlclient.so.21: cannot open shared object file: No such file or directory
    
  2. MySQL lib ディレクトリ内の libmysqlclient.so の状況確認:
    libmysqlclient.so.24 が存在することを確認)

    [grid@ole810 oggm]$ find /usr/local/mysql/lib -name libmysqlclient*|xargs ls -l
    -rw-r--r--. 1 mysql mysql 64913316 Mar 31 17:10 /usr/local/mysql/lib/libmysqlclient.a
    lrwxrwxrwx. 1 mysql mysql       20 Mar 31 17:39 /usr/local/mysql/lib/libmysqlclient.so -> libmysqlclient.so.24
    lrwxrwxrwx. 1 mysql mysql       24 Mar 31 17:39 /usr/local/mysql/lib/libmysqlclient.so.24 -> libmysqlclient.so.24.0.5
    -rwxr-xr-x. 1 mysql mysql 26223760 Mar 31 17:09 /usr/local/mysql/lib/libmysqlclient.so.24.0.5
    
  3. シンボリックリンク作成後のエラー:
    libmysqlclient.so.24libmysqlclient.so.21 としてシンボリックリンクを作成した後もエラーが発生)

    [grid@ole810 oggm]$ ./ggsci
    ./ggsci: /usr/local/mysql/lib/libmysqlclient.so.21: version `libmysqlclient_21.0' not found (required by ./ggsci)
    

該当する環境情報 (Environment Information)

  • OS: Oracle Linux 8.10
  • GoldenGate: Oracle GoldenGate 19.1.0.0.230418 for MySQL (/acfsogg/oggm ディレクトリにインストール)
  • MySQL: MySQL Community Server 8.4.5 (インストールパス: /usr/local/mysql)
  • ggsci 実行ユーザー: grid

自分で試したこと

  1. MySQL の lib ディレクトリ (/usr/local/mysql/lib/) に libmysqlclient.so.24 が存在することを確認しました
  2. libmysqlclient.so.21 が見つからないというエラーメッセージに基づき、以下のコマンドでシンボリックリンクを作成しました
    sudo ln -s /usr/local/mysql/lib/libmysqlclient.so /usr/local/mysql/lib/libmysqlclient.so.21
    
    (補足:実際には libmysqlclient.so.24.0.5 へリンクすべきかもしれませんが、まずは libmysqlclient.so へのリンクを試しました。)
  3. 上記シンボリックリンク作成後、再度 ggsci を実行しましたが、エラー内容は変わったものの、依然として起動できませんでした(エラーメッセージは「発生している問題・エラー」の3番目を参照)

Oracle GoldenGate 19c for MySQL が使用する libmysqlclient.so のバージョンを指定する方法、またはこの問題を解決するための他のアプローチについてご存知の方がいらっしゃいましたら、ご教示いただけますでしょうか。
OGG がコンパイル時に特定のMySQLクライアントライブラリバージョンに静的にリンクされているのか、それとも設定等で変更可能なのかについても情報をいただけると幸いです。よろしくお願いいたします。

0 likes

1Answer

質問者さんが予想されている通り、Oracle GoldenGate 19.1 は.21に依存しているので問題の本質はバージョンの不適合かと思います。
Oracle GoldenGateとMySQLのいずれかのバージョンを対応するものに合わせれば問題は解決するかと。

シンボリックスを表面上.21に合わせても内部的なシンボルが存在しないためエラーが発生するはずです。
仮に通ったとしても何かしらの不具合に繋がる可能性があるのでバージョンを合わせるのが最もシンプルな解決法になるかと思います。

0Like

Your answer might help someone💌