Скрипт configure
обеспечивает широкие возможности
управления конфигурацией
дистрибутива MySQL. Обычно такое
управление осуществляется путем
использования опций в командной
строке configure. На работу
configure можно также
воздействовать при помощи
соответствующих переменных
окружения (see
Приложение F, Переменные окружения). Чтобы
получить список поддерживаемых
configure опций, запустите следующую
команду:
shell> ./configure --help
Ниже описаны некоторые из наиболее
часто используемых опций
configure:
Для компиляции только
клиентских библиотек MySQL и
клиентских программ (без
серверной части) используйте
опцию --without-server:
shell> ./configure --without-server
При отсутствии компилятора C++ не
будет компилироваться
mysql (именно для данной
клиентской программы требуется
C++). В этом случае можно удалить
из configure код, который проверяет
наличие компилятора C++, а затем
запустить ./configure с
опцией --without-server. На
этапе компиляции и после этого
будет предпринята попытка
скомпилировать mysql, но
любые предупреждения насчет
mysql.cc можно
игнорировать (если make
остановится, попробуйте
запустить make -k - чтобы
компиляция остального кода
продолжалась даже в случае
возникновения ошибок).
Если необходимо получить
встраиваемую библиотеку MySQL
(libmysqld.a), используйте
опцию --with-embedded-server.
Если вы не хотите, чтобы ваши
системные журналы и каталоги баз
данных располагались в каталоге
/usr/local/var, то
используйте команду
configure наподобие одной
из приведенных ниже:
shell>./configure --prefix=/usr/local/mysqlshell>./configure --prefix=/usr/local \--localstatedir=/usr/local/mysql/data
Первая команда изменяет
установочный префикс, в
результате чего весь код будет
установлен в каталоге
/usr/local/mysql вместо
принятого по умолчанию
/usr/local. Вторая команда
сохраняет принятый по умолчанию
установочный префикс, но
переопределяет принятое по
умолчанию местоположение
каталогов базы данных (обычно
/usr/local/var) и изменяет
его на /usr/local/mysql/data.
После завершения компиляции MySQL
эти опции можно изменить с
помощью файлов опций (see
Раздел 4.1.2, «Файлы параметров my.cnf»)
Если вы работаете под Unix и
хотите, чтобы сокет MySQL находился
в каком-либо другом, отличном от
принятого по умолчанию, месте
(обычно по умолчанию задается
каталог /tmp или
/var/run), используйте
команду configure, подобную
следующей:
shell> ./configure --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock
Следует учитывать, что данный
файл должен представлять собой
полный путь к каталогу! Позже
местоположение mysql.sock можно
также изменить, используя файлы
опций MySQL (see
Раздел A.4.5, «Как защитить или изменить сокет-файл MySQL /tmp/mysql.sock»).
Если необходимо компилировать
статически линкованные
программы (например, чтобы
создать бинарный дистрибутив,
или чтобы повысить скорость, или
чтобы обойти проблемы некоторых
дистрибутивов RedHat Linux), запустите
configure так, как показано
ниже:
shell>./configure --with-client-ldflags=-all-static \--with-mysqld-ldflags=-all-static
При использовании gcc
без установленной библиотеки
libg++ или
libstdc++ можно предписать
configure в качестве
компилятора C++ использовать
gcc:
shell> CC=gcc CXX=gcc ./configure
Если gcc используется
как компилятор C++, то он не будет
пробовать линковаться с
libg++ или
libstdc++. Это может
оказаться полезным даже если
такие библиотеки установлены,
поскольку при использовании
некоторых версий вышеназванных
библиотек в прошлом у
пользователей MySQL возникали
непонятные проблемы.
Ниже приводятся установки некоторых общих переменных окружения в зависимости от используемого компилятора:
| Компилятор | Рекомендуемые опции |
| gcc 2.7.2.1 | CC=gcc CXX=gcc CXXFLAGS="-O3 -felide-constructors" |
| egcs 1.0.3a | CC=gcc CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" |
| gcc 2.95.2 | CFLAGS="-O3 -mpentiumpro" CXX=gcc CXXFLAGS="-O3 -mpentiumpro \ -felide-constructors -fno-exceptions -fno-rtti" |
| pgcc 2.90.29 or newer | CFLAGS="-O3 -mpentiumpro -mstack-align-double" CXX=gcc \ CXXFLAGS="-O3 -mpentiumpro -mstack-align-double -felide-constructors \ -fno-exceptions -fno-rtti" |
В большинстве случаев можно получить достаточно оптимальный бинарный код MySQL путем использования опций предыдущей таблицы и добавления в командной строке следующих опций:
--prefix=/usr/local/mysql --enable-assembler \ --with-mysqld-ldflags=-all-static
Другими словами, полная строка конфигурации для всех последних версий gcc должна быть подобна приведенной ниже:
CFLAGS="-O3 -mpentiumpro" CXX=gcc CXXFLAGS="-O3 -mpentiumpro \ -felide-constructors -fno-exceptions -fno-rtti" ./configure \ --prefix=/usr/local/mysql --enable-assembler \ --with-mysqld-ldflags=-all-static
Все бинарные коды, которые мы поставляем с веб-сайта MySQL на http://www.mysql.com/, компилируются с максимальной оптимизацией и должны быть идеальными для большинства пользователей (see Раздел 2.2.7, «Бинарные коды MySQL, скомпилированные в MySQL AB»). Существуют некоторые настройки, позволяющие сделать бинарный код даже еще быстрее, но их могут выполнять только опытные пользователи (see Раздел 5.5.3, «Как компиляция и линкование влияет на скорость MySQL»).
Если создать код не удается и при
этом выдаются ошибки с указанием
на компилятор или если
компоновщик не в состоянии
создать совместную библиотеку
libmysqlclient.so.#
(‘#’ представляет
собой номер версии), то эту
проблему можно обойти путем
добавления к configure
опции --disable-shared. В этом
случае configure не будет
создавать совместную библиотеку
libmysqlclient.so.#.
Можно сконфигурировать MySQL таким
образом, чтобы не использовать
величины DEFAULT на
столбцах не-NULL (т.е. на
столбцах, которые не могут
принимать значение
NULL). При указании этой
опции команды INSERT
будут генерировать ошибку в
случае, если явно не указаны
величины для всех столбцов,
которые не могут принимать
значение NULL. Чтобы
запретить использование величин
по умолчанию, запустите
configure, как показано
ниже:
shell> CXXFLAGS=-DDONT_USE_DEFAULT_FIELDS ./configure
По умолчанию в MySQL используется
кодировка ISO-8859-1 (Latin1). Для
изменения кодировки, принятой по
умолчанию, следует применить
опцию --with-charset:
shell> ./configure --with-charset=CHARSET
CHARSET может принимать
одно из следующих значений:
big5, cp1251,
cp1257, czech,
danish, dec8,
dos, euc_kr,
gb2312, gbk,
german1, hebrew,
hp8, hungarian,
koi8_ru, koi8_ukr,
latin1, latin2,
sjis, swe7,
tis620, ujis,
usa7 или win1251ukr
(see Раздел 4.6.1, «Набор символов, применяющийся для записи данных и сортировки»). Если
требуется преобразовывать
символы между сервером и
клиентом, следует рассмотреть
команду SET CHARACTER SET (see
Раздел 5.5.6, «Синтаксис команды SET»).
Предупреждение:
если набор символов изменяется
после создания таблиц,
необходимо запустить myisamchk
-r -q --set-characted-set=charset на
каждой таблице. В противном
случае индексы могут
сортироваться неправильно
(такое может случиться, если вы
установите MySQL, создадите ряд
таблиц, затем
переконфигурируете MySQL с целью
использования другого набора
символов и заново установите
MySQL).
С помощью опции
--with-extra-charsets=LIST можно
определить, какие
дополнительные кодировки
необходимо скомпилировать в
данном сервере.
Здесь LIST либо
представляет собой разделенный
пробелами список кодировок, либо
имеет значение complex
для включения всех символов,
которые не могут быть загружены
динамически, либо имеет значение
all для включения всех
кодировок в бинарники.
Для конфигурации MySQL с кодом
отладки используйте опцию
--with-debug:
shell> ./configure --with-debug
Задание этой опции вызывает подключение надежного распределителя памяти, который может найти некоторые ошибки и обеспечить вывод информации о том, что происходит (see Раздел E.1, «Отладка сервера MySQL»).
Если клиентские программы
используют потоки, то необходимо
также скомпилировать
поддерживающую потоки версию
клиентской библиотеки MySQL с
опцией конфигурации
--enable-thread-safe-client. При
указании этой опции будет
создана библиотека
libmysqlclient_r, с которой
следует линковать потоковые
приложения (see
Раздел 8.4.8, «Как создать клиентскую программу с потоками»).
Опции, относящиеся к конкретным системам, можно найти в разделах данного руководства, в которых описываются особенности различных операционных систем (see Раздел 2.6, «Заметки по операционным системам»).
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
© 1995-2005 MySQL AB. All rights reserved.
