MySQL 服务器编译时使用的配置选项?

MySQL 服务器编译时使用的配置选项?

我在 Linux 机器上运行着 MySQL 服务器 5.0.67。
我如何知道编译它时使用了哪些配置选项?

我对这个选项感兴趣--with-mysqld-ldflags为了知道 mysql 是静态链接还是动态链接。

答案1

mysqlbug您可以使用命令行实用程序查看配置选项。

在您的 shell 类型中mysqlbug,您将看到一个用于提交 bug 的模板电子邮件。
在该电子邮件的底部,您可以看到 configure 行,其中包含编译 MySQL 副本时使用的所有选项。

默认情况下省略--with-mysqld-ldflags,这意味着服务器将被动态编译。
http://dev.mysql.com/doc/refman/5.0/en/configure-options.html

答案2

它不会让您准确地得到您所要求的东西,但您可以检查二进制文件是否是静态链接的(如果是动态链接的,那么它链接到哪些库)ldd

当二进制文件动态链接时,输出类似于以下内容:

$ ldd test-dyn
        linux-vdso.so.1 =>  (0x00007fffce7fe000)
        libc.so.6 => /lib64/libc.so.6 (0x000000391f000000)
        /lib64/ld-linux-x86-64.so.2 (0x000000391ec00000)

...在静态链接的二进制文件中,如下所示:

$ ldd test-stat
        not a dynamic executable

答案3

哪个版本的 Linux?详细信息将在源包中提供。

对于基于 Debian/Ubuntu 的系统,您可以使用 获取源包apt-get source packagename。然后查看运行构建的 debian/rules 脚本。

答案4

当我运行 ldd 时,我得到了这个:

root@主机名3 [~]# ldd /usr/sbin/mysqld
        linux-gate.so.1 => (0x00139000)
        librt.so.1 => /lib/librt.so.1 (0x00ba2000)
        libdl.so.2 => /lib/libdl.so.2 (0x00ae3000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00b12000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x00bad000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x00be1000)
        libm.so.6 => /lib/libm.so.6 (0x00ae9000)
        libc.so.6 => /lib/libc.so.6 (0x0099d000)
        /lib/ld-linux.so.2 (0x0097f000)

这是否意味着 mysqld 是静态链接的??

相关内容