在 Linux 环境中查找 libmysqlclient.so.X 文件的位置

wra*_*ler 6 mysql linux ubuntu find centos

我正在整理一个需要知道 libmysqlclient.so.[15|16|18] .so 文件的脚本。它通常位于 /usr/lib/ 、 /usr/lib64/ 或上述目录的 mysql/ 子目录中。

我已经尝试了几件事。首先,有时可以在 /etc/ld.so.conf.d/mysql* 中的 mysql 文件中找到该位置,但在许多服务器上并非如此。

另一种可能性是在上述目录中搜索这些文件。我会知道正在使用哪个版本的 MySQL,所以我可以搜索正确的 .so 文件,但不幸的是,很多人似乎安装了多个 .so 文件。例如两者都可能存在:

  • /usr/lib/libmysqlclient.so.15

  • /usr/lib64/libmysqlclient.so.15

在这种情况下,我不确定正在使用哪个 .so 文件。

有没有办法告诉正确的 libmysqlclient.so 安装在哪里?

Kyl*_*yle 7

这将为您提供链接器识别的所有 libmysql 文件。列表中越高的优先级越高,并且更有可能被链接。

/sbin/ldconfig -p | grep mysql | cut -d\> -f2
Run Code Online (Sandbox Code Playgroud)

但需要注意的是,由于大多数应用程序通过执行 gcc -lmysqlclient 进行链接,因此它们将支持 ldconfig 中列为 libmysqlclient.so 而不是 .so.15 或其他任何文件的文件。所以我个人认为第一个 libmysqlclient.so 是正确的。