Справочное руководство по MySQL версии 4.1.1-alpha



         

Глава 2.6.3 Примечания к Solaris - часть 3


Получение нижеследующей ошибки при компиляции MySQL компилятором gcc

означает, что gcc не сконфигурирован под вашу версию Solaris:

shell> gcc -O3 -g -O2 -DDBUG_OFF -o thr_alarm ... ./thr_alarm.c: In function `signal_hand': ./thr_alarm.c:556: too many arguments to function `sigwait'

В этом случае нужно взять самую свежую версию gcc и скомпилировать ее установленным gcc-компилятором! Почти все бинарные версии gcc (по крайней мере для Solaris 2.5) содержат старые, непригодные к использованию включаемые файлы, которые портят все программы, использующие потоки (а возможно, и другие программы)!

В Solaris не обеспечиваются статические версии всех системных библиотек (libpthreads и libdl), поэтому компилировать MySQL с опцией -static нельзя. При попытке такой компиляции вы получите одно из приведенных ниже сообщений об ошибке:

ld: fatal: library -ldl: not found или undefined reference to `dlopen' или cannot find -lrt

Если слишком много процессов одновременно пытаются установить соединение с mysqld, то в файле протокола MySQL появится следующее сообщение об ошибке:

Error in accept: Protocol error

Для решения этой проблемы можно попытаться запустить сервер с опцией --set-variable back_log=50. Внимание: --set-variable не используется в MySQL 4.0. Просто используйте --back_log=50. See section 4.1.1 Параметры командной строки mysqld.

Если вы линкуете собственный MySQL-клиент, то при попытке его запустить может выдаваться следующее сообщение об ошибке:

ld.so.1: ./my: fatal: libmysqlclient.so.#: open failed: No such file or directory

Проблему можно решить одним из следующих способов:

  • Линковать клиент со следующими опциями (вместо -Lpath): -Wl,r/полный-путь-к-libmysqlclient.so.

  • Скопировать `libmysqclient.so' в `/usr/lib'.

  • Перед запуском своего клиента добавить путь к каталогу, в котором находится `libmysqclient.so', к переменной окружения LD_RUN_PATH.

    Если вы столкнулись с проблемами конфигурирования, пытаясь линковать с опцией -lz и у вас не установлена zlib, существует два варианта:

    • Если вы хотите иметь возможность использовать протокол взаимодействия со сжатием, необходимо получить и установить zlib с ftp.gnu.org.

    • Сконфигурировать с --with-named-z-libs=no.

      Если при использовании gcc вы столкнулись с проблемами загрузки UDF-функций в MySQL, попробуйте добавить -lgcc к строке, отвечающей за линкование UDF-функций.

      Для того чтобы MySQL-сервер стартовал автоматически, можно скопировать `support-files/mysql.server' в `/etc/init.d' и создать на него символическую ссылку `/etc/rc3.d/S99mysql.server'.

      Поскольку Solaris не поддерживает файлы образа памяти для приложений, использующих setuid(), невозможно получить файл образа памяти программы mysqld при использовании опции --user.




      Содержание  Назад  Вперед