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



E Перенос на другие системы

Цель данного раздела - обеспечить помощь в переносе MySQL на другие операционные системы. Но сначала необходимо ознакомиться со списком поддерживаемых в настоящее время операционных систем (see section 2.2.5 Операционные системы, поддерживаемые MySQL). Если вы создали новую версию переноса MySQL, пожалуйста, сообщите нам - тогда мы включим ее в настоящий список и в список на нашем веб-сайте (http://www.mysql.com/) и сможем рекомендовать ее другим пользователям.

Примечание: те, кто создаст новую версию переноса MySQL, имеют право размножать и распространять на условиях лицензии GPL, но это не делает их обладателями авторского права на MySQL.

Для сервера необходима рабочая библиотека Posix-потоков. Под операционной системой Solaris 2.5 мы используем потоки Sun PThreads ("родная" поддержка потоков в версии 2.4 и более ранних не является достаточно хорошей), а под Linux мы используем LinuxThreads, разработку Ксавье Лероя (Xavier Leroy, Xavier.Leroy@inria.fr).

При переносе на новый вариант Unix без хорошей поддержки собственных потоков наиболее трудной частью является перенос потоков MIT-pthreads. См. `mit-pthreads/README' и Programming POSIX Threads (Программирование POSIX-потоков) (http://www.humanfactor.com/pthreads/).

В состав поставки MySQL входит исправленная версия Pthreads Провензано (Provenzano) от MIT (см. веб-страницу MIT Pthreads на http://www.mit.edu:8001/people/proven/pthreads.html). Эту версию можно применять для операционных систем, не имеющих POSIX-потоков.

Можно использовать и другой пакет потоков пользовательского уровня - FSU Pthreads ( страница FSU Pthreads). Эта реализация применяется для переноса SCO.

Для ознакомления этими проблемами и анализа их следует изучить программы `thr_lock.c' и `thr_alarm.c' в каталоге `mysys'.

И сервер, и клиент нуждаются в работающем компиляторе C++ (мы используем gcc, испытывали также SPARCworks). Еще одним работающим компилятором является Irix cc.

Для компиляции только клиентской части используйте ./configure --without-server.

Компиляция отдельно серверной части в настоящее время не поддерживается, и добавлять такую возможность не планируется до тех пор, пока для этого не будет веских оснований.

Если необходимо изменить любой `Makefile' или скрипт конфигурации, следует использовать Automake и Autoconf. Мы применяли версии automake-1.2 и autoconf-2.12.

Ниже перечислены действия, необходимые для того, чтобы собрать все заново из базовых файлов:

/bin/rm */.deps/*.P
/bin/rm -f config.cache
aclocal
autoheader
aclocal
automake
autoconf
./configure --with-debug=full --prefix='your installation directory'
# makefiles были сгенерированы для GNU make 3.75 или более новой,
# обозначенной как gmake строчкой ниже
gmake clean all install init-db

Если вы столкнетесь с проблемами новой версии переноса, то, возможно, потребуется произвести некоторую отладку MySQL! See section E.1 Отладка сервера MySQL.

Примечание:


Примечание:

прежде чем запускать отладку mysqld, нужно добиться, чтобы заработала тестовая программа `mysys/thr_alarm' and `mysys/thr_lock', - тогда у вас появится хотя бы призрачный шанс получить рабочие потоки.

E Перенос на другие системы

E.1 Отладка сервера MySQL
E.1.1 Компиляция MySQL для отладки
E.1.2 Создание трассировочных файлов
E.1.3 Отладка mysqld при помощи gdb
E.1.4 Использование трассировки стека
E.1.5 Использование журналов для определения причин ошибок в mysqld
E.1.6 Создание контрольного примера при повреждении таблиц

E.2 Отладка клиента MySQL

E.3 Пакет DBUG

E.4 Методы блокировки

E.5 Замечания по потокам RTS

E.6 Различия между разными потоковыми пакетами