configure
Buy this Reference Manual in softcover from Barnes & Noble!
configure
Скрипт configure
обеспечивает широкие возможности управления конфигурацией дистрибутива MySQL. Обычно такое управление осуществляется путем использования опций в командной строке configure
. На работу configure
можно также воздействовать при помощи соответствующих переменных окружения (see section F Переменные окружения). Чтобы получить список поддерживаемых configure опций, запустите следующую команду:
shell> ./configure --help
Ниже описаны некоторые из наиболее часто используемых опций configure
:
--without-server
:
shell> ./configure --without-serverПри отсутствии компилятора C++ не будет компилироваться
mysql
(именно для данной клиентской программы требуется C++). В этом случае можно удалить из configure код, который проверяет наличие компилятора C++, а затем запустить ./configure
с опцией --without-server
. На этапе компиляции и после этого будет предпринята попытка скомпилировать mysql
, но любые предупреждения насчет `mysql.cc' можно игнорировать (если make
остановится, попробуйте запустить make -k
- чтобы компиляция остального кода продолжалась даже в случае возникновения ошибок).
--with-embedded-server
.configure
наподобие одной из приведенных ниже:
shell> ./configure --prefix=/usr/local/mysql shell> ./configure --prefix=/usr/local \ --localstatedir=/usr/local/mysql/dataПервая команда изменяет установочный префикс, в результате чего весь код будет установлен в каталоге `/usr/local/mysql' вместо принятого по умолчанию `/usr/local'. Вторая команда сохраняет принятый по умолчанию установочный префикс, но переопределяет принятое по умолчанию местоположение каталогов базы данных (обычно `/usr/local/var') и изменяет его на `/usr/local/mysql/data'. После завершения компиляции MySQL эти опции можно изменить с помощью файлов опций (see section 4.1.2 Файлы параметров `my.cnf')
shell> ./configure --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sockСледует учитывать, что данный файл должен представлять собой полный путь к каталогу! Позже местоположение mysql.sock можно также изменить, используя файлы опций MySQL (see section A.4.5 Как защитить или изменить сокет-файл MySQL `/tmp/mysql.sock').
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" |
--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 section 2.2.9 Бинарные коды MySQL, скомпилированные в MySQL AB). Существуют некоторые настройки, позволяющие сделать бинарный код даже еще быстрее, но их могут выполнять только опытные пользователи (see section 5.5.3 Как компиляция и линкование влияет на скорость MySQL). Если создать код не удается и при этом выдаются ошибки с указанием на компилятор или если компоновщик не в состоянии создать совместную библиотеку `libmysqlclient.so.#' (`#' представляет собой номер версии), то эту проблему можно обойти путем добавления к
configure
опции --disable-shared
. В этом случае configure
не будет создавать совместную библиотеку `libmysqlclient.so.#'.
DEFAULT
на столбцах не-NULL
(т.е. на столбцах, которые не могут принимать значение NULL
). При указании этой опции команды INSERT
будут генерировать ошибку в случае, если явно не указаны величины для всех столбцов, которые не могут принимать значение NULL
. Чтобы запретить использование величин по умолчанию, запустите configure
, как показано ниже:
shell> CXXFLAGS=-DDONT_USE_DEFAULT_FIELDS ./configure
--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 section 4.6.1 Набор символов, применяющийся для записи данных и сортировки). Если требуется преобразовывать символы между сервером и клиентом, следует рассмотреть команду SET CHARACTER SET
(see section 5.5.6 Синтаксис команды SET
). Предупреждение: если набор символов изменяется после создания таблиц, необходимо запустить myisamchk -r -q --set-characted-set=charset
на каждой таблице. В противном случае индексы могут сортироваться неправильно (такое может случиться, если вы установите MySQL, создадите ряд таблиц, затем переконфигурируете MySQL с целью использования другого набора символов и заново установите MySQL). С помощью опции --with-extra-charsets=LIST
можно определить, какие дополнительные кодировки необходимо скомпилировать в данном сервере. Здесь LIST
либо представляет собой разделенный пробелами список кодировок, либо имеет значение complex
для включения всех символов, которые не могут быть загружены динамически, либо имеет значение all
для включения всех кодировок в бинарники.
--with-debug
:
shell> ./configure --with-debugЗадание этой опции вызывает подключение надежного распределителя памяти, который может найти некоторые ошибки и обеспечить вывод информации о том, что происходит (see section E.1 Отладка сервера MySQL).
--enable-thread-safe-client
. При указании этой опции будет создана библиотека libmysqlclient_r
, с которой следует линковать потоковые приложения (see section 8.4.8 Как создать клиентскую программу с потоками).Posted by on Sunday July 21 2002, @8:21am | [Delete] [Edit] |
Thanks a lot for that last tip, DaPhreak. You saved
my mysql install. :)
Posted by [name withheld] on Wednesday December 18 2002, @5:27pm | [Delete] [Edit] |
For all who had the same Prolem like me :
If you get some error like this :
No curses/termcap library found
configure you're Source Distribution with the
option --with-named-curses-
libs=/your/path/to/lib/libncurses.so.5.0
Best Regards DaPhreak
Add your own comment.