Назад | Перейти на главную страницу

Параметры конфигурации Сервер MySQL был скомпилирован?

У меня есть сервер MySQL 5.0.67, работающий на машине Linux.
Как я могу узнать, какие параметры конфигурации использовались для его компиляции?

Меня интересует вариант --with-mysqld-ldflags чтобы узнать, был ли mysql связан статически или динамически.

Вы можете увидеть параметры конфигурации, используя mysqlbug утилита командной строки.

В вашем типе оболочки mysqlbug и вы увидите шаблон электронного письма с сообщением об ошибке.
В конце этого письма вы можете увидеть строку конфигурации со всеми параметрами, с которыми была скомпилирована ваша копия MySQL.

В --with-mysqld-ldflags по умолчанию опущен, и это означает, что сервер будет компилироваться динамически.
http://dev.mysql.com/doc/refman/5.0/en/configure-options.html

Он не даст вам именно то, что вы просили, но вы можете проверить, связан ли двоичный файл статически или нет (и, если он динамически связан, с какими библиотеками он связан) с помощью 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

Какая версия Linux? Подробности будут в исходном пакете.

Для Debian / Ubuntu вы можете получить исходный код с помощью apt-get source packagename. Затем посмотрите сценарий debian / rules, запускающий сборку.

Когда я запускаю ldd, я получаю следующее:

root@hostname3 [~]# 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 связан статически?