В этом разделе находится информация относительно различных BSD-систем, а также конкретных версий этих систем.
Примечания к FreeBSD
Для работы Mysql рекомендуется FreeBSD версий 3.x, поскольку версия с потоками является намного более интегрированной.
Простейшим, а поэтому и более предпочтительным способом установки является использование портов mysql-server и mysql-client из коллекции портов FreeBSD, которая доступна по адресу http://www.freebsd.org/.
Использование этих портов обеспечивает:
работоспособный MySQL со всеми возможностями оптимизации, доступными на данной версии FreeBSD;
автоматическую конфигурацию и сборку;
установку скриптов, запускающих MySQL, в `/usr/local/etc/rc.d";
возможность получения списка установленных файлов по команде pkg_info -L и удаления их при помощи команды pkg_delete в случае, если вы более не нуждаетесь в MySQL на данной машине.
Рекомендуется использовать MIT-pthreads на FreeBSD версий 2.x и собственные потоки для 3.x и более поздних версий FreeBSD. На некоторых последних версиях 2.2.x возможно применение собственных потоков, но при этом не исключены проблемы с остановкой mysqld . Для сборки MySQL в соответствии с Makefile "ом необходима программа GNU make (gmake ). Прежде чем выполнять сборку MySQL, следует установить GNU make.
Удостоверьтесь, что используемый вами сервер имен работает корректно. В противном случае возможны задержки или ошибки при соединении с mysqld .
Убедитесь в корректности записи localhost в файле "/etc/hosts" (при отсутствии или ошибочности этой записи возникнут проблемы соединения с базой). Файл `/etc/hosts" должен начинаться с записи:
127.0.0.1 localhost localhost.your.domain
Предлагаемый способ сборки и установки MySQL на FreeBSD с использованием gcc (версии 2.95.2 или более поздней):
CC=gcc CFLAGS="-O2 -fno-strength-reduce" \ CXX=gcc CXXFLAGS="-O2 -fno-rtti -fno-exceptions -felide-constructors \ -fno-strength-reduce" \ ./configure --prefix=/usr/local/mysql --enable-assembler gmake gmake install ./scripts/mysql_install_db cd /usr/local/mysql ./bin/mysqld_safe &
Если программа configure решила использовать MIT-pthreads, необходимо ознакомится с примечаниями по MIT-pthreads (см. раздел Замечания по потокам MIT-pthreads).
Если при выполнении make install возникла ошибка, сообщающая о невозможности нахождения "/usr/include/pthreads" (can"t find "/usr/include/pthreads"), это значит, что configure не определил необходимость использования MIT-pthreads. Для исправления данной ошибки необходимо выполнить следующие команды:
shell> rm config.cache shell> ./configure --with-mit-threads
Как известно, в FreeBSD по умолчанию установлено очень небольшое значение для количества одновременно открытых файлов (see section A.2.16 Не найден файл (File not found )). Чтобы исправить положение, следует раскомментировать секцию ulimit -n в скрипте safe_mysqld или повысить ограничение для пользователя mysqld в "/etc/login.conf" (не забудьте перестроить его командой cap_mkdb "/etc/login.conf"). Помимо этого, имеет смысл проверить установку подходящего класса для этого пользователя в файле паролей, если не используется значение по умолчанию (при помощи chpass mysqld-user-name ). See section 4.7.2 safe_mysqld , оболочка mysqld .
При наличии значительного объема оперативной памяти можно рассмотреть вариант перестройки ядра, чтобы разрешить MySQL использовать более чем 512Mб оперативной памяти. Чтобы получить больше информации, обратитесь к option MAXDSIZ в конфигурационном файле LINT.
В случае возникновения проблем с текущей датой в MySQL ситуацию может исправить правильная установка переменной TZ . See section F Переменные окружения.
Для получения безопасной и устойчивой системы следует использовать только те ядра системы FreeBSD, которые обозначены как -RELEASE .
Примечания к NetBSD
Для компиляции на NetBSD необходимо, чтобы была установлена программа GNU make. В противном случае компиляция завершится аварийно при попытке make запустить lint на файлах C++.
Примечания к OpenBSD 2.5
На OpenBSD версии 2.5 можно компилировать MySQL с использованием собственных потоков. Необходимо указать следующие опции:
CFLAGS=-pthread CXXFLAGS=-pthread ./configure -with-mit-threads=no
Примечания к OpenBSD 2.8
По сообщениям наших пользователей, OpenBSD 2.8 содержит ошибку в реализации потоков, которая вызывает проблемы с MySQL. Разработчики OpenBSD устранили эту ошибку, но к 25 января 2001 года исправленная версия доступна только в ветви "-current". Симптомы этой ошибки реализации потоков следующие: медленный ответ, высокая загрузка, большая загрузка процессора и аварийная остановка программы.
Получение сообщения об ошибке вроде Error in accept:: Bad file descriptor или ошибки 9 при попытке открыть таблицу либо каталог означает, что вы не заказали достаточно дескрипторов файлов для MySQL.
В этом случае попробуйте запустить safe_mysqld от имени пользователя root с опциями:
--user=mysql --open-files-limit=2048
Примечания к BSD/OS версий 2.x
Получение приведенной ниже ошибки при компиляции MySQL означает, что установленное с помощью ulimit значение размера виртуальной памяти слишком мало:
item_func.h: In method `Item_func_ge::Item_func_ge(const Item_func_ge &)": item_func.h:28: virtual memory exhausted make[2]: *** [item_func.o] Error 1
Попробуйте выполнить ulimit -v 80000 и запустить make еще раз. Если это не поможет, а в качестве оболочки используется bash , попробуйте перейти на csh или sh : некоторые пользователи BSDI сообщали нам о проблемах с bash и ulimit .
Если вы используете gcc , то, возможно, необходимо добавить флаг --with-low-memory при запуске configure , чтобы обеспечить возможность компиляции "sql_yacc.cc".
При возникновении проблем с текущей датой в MySQL может помочь установка переменной TZ (see section F Переменные окружения).
Примечания к BSD/OS версий 3.x
Для конфигурирования MySQL следует использовать следующую команду:
shell> env CXX=shlicc++ CC=shlicc2 \ ./configure \ --prefix=/usr/local/mysql \ --localstatedir=/var/mysql \ --without-perl \ --with-unix-socket-path=/var/mysql/mysql.sock
Сработает и следующая командная строка:
shell> env CC=gcc CXX=gcc CXXFLAGS=-O3 \ ./configure \ --prefix=/usr/local/mysql \ --with-unix-socket-path=/var/mysql/mysql.sock
При желании вы можете изменить местоположение каталогов или использовать значения по умолчанию, не определяя никаких путей.
Если возникнут проблемы с производительностью при большой нагрузке, попробуйте при запуске mysqld использовать опцию --skip-thread-priority ! Применение данной опции приведет к тому, что все потоки будут работать с одинаковым приоритетом; на BSDI версии 3.1 это обеспечивало повышение производительности (по крайней мере, пока не был исправлен планировщик потоков).
В случае получения сообщения об ошибке virtual memory exhausted во время компиляции попробуйте выполнить ulimit -v 80000 и запустить make повторно. Если это не поможет, а в качестве оболочки у вас используется bash , попробуйте перейти на csh или sh : некоторые пользователи BSDI сообщали о проблемах с bash и ulimit .
Примечания к BSD/OS версий 4.x
BSDI версий 4.x содержит ошибку, имеющую отношение к потокам. Если вы планируете использовать MySQL на этой системе, необходимо предварительно установить все патчи, относящиеся к реализации потоков. По крайней мере, должен быть установлен M400-023.
На некоторых системах BSDI версий 4.x вы можете столкнуться с проблемами при использовании динамических библиотек. Проявляется это как невозможность выполнить какую-либо клиентскую программу, например mysqladmin . В данном случае необходимо переконфигурировать MySQL с запретом использовать динамические библиотеки, указав для скрипта configure опцию --disable-shared .
Некоторые пользователи сообщали нам о проблемах на BSDI 4.0.1, которые проявляются в том, что через некоторое время после начала работы mysqld не может открыть таблицы. Это происходит потому, что из-за какой-то системной или библиотечной ошибки mysqld изменяет текущий каталог без какого-либо запроса!
Для решения проблемы необходимо либо обновить MySQL до версии 3.23.34, либо после запуска configure удалить строку #define HAVE_REALPATH из файла "config.h" перед запуском make .
Отметим, что вышеописанные действия приведут к невозможности создать символическую ссылку из одних каталогов базы данных на другой каталог базы данных или символическую ссылку на таблицу в другой базе данных на BSDI! (Создание символической ссылки на другой диск допускается.)
8 8 8
|