[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
configure
Options
The configure
script gives you a great deal of control over how
you configure a MySQL source distribution. Typically you do this
using options on the configure
command-line. You can also affect
configure
using certain environment variables. See section E. Environment Variables. For a list of options supported by configure
, run
this command:
shell> ./configure --help |
Some of the more commonly used configure
options are described here:
--without-server
option:
shell> ./configure --without-server |
If you don't have a C++ compiler, mysql
will not compile (it is the
one client program that requires C++). In this case,
you can remove the code in configure
that tests for the C++ compiler
and then run ./configure
with the --without-server
option. The
compile step will still try to build mysql
, but you can ignore any
warnings about `mysql.cc'. (If make
stops, try make -k
to tell it to continue with the rest of the build even if errors occur.)
libmysqld.a
) you should
use the --with-embedded-server
option.
configure
command, something like one
of these:
shell> ./configure --prefix=/usr/local/mysql shell> ./configure --prefix=/usr/local \ --localstatedir=/usr/local/mysql/data |
The first command changes the installation prefix so that everything is
installed under `/usr/local/mysql' rather than the default of
`/usr/local'. The second command preserves the default installation
prefix, but overrides the default location for database directories
(normally `/usr/local/var') and changes it to
/usr/local/mysql/data
. After you have compiled MySQL, you can
change these options with option files. See section 4.3.2 Using Option Files.
configure
command like this:
shell> ./configure \ --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock |
Note that the given file must be an absolute pathname. You can also later change the location of `mysql.sock' by using a MySQL option file. See section Problems with `mysql.sock'.
configure
like this:
shell> ./configure --with-client-ldflags=-all-static \ --with-mysqld-ldflags=-all-static |
gcc
and don't have libg++
or libstdc++
installed, you can tell configure
to use gcc
as your C++
compiler:
shell> CC=gcc CXX=gcc ./configure |
When you use gcc
as your C++ compiler, it will not attempt to link in
libg++
or libstdc++
. This may be a good idea to do even if you
have the above libraries installed, as some versions of these libraries have
caused strange problems for MySQL users in the past.
The following list indicates some compilers and environment variable settings that are commonly used with each one.
gcc
2.7.2:
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"
In most cases you can get a reasonably optimal MySQL binary by using the
options from the preceding list and adding the following options to the
configure
line:
--prefix=/usr/local/mysql --enable-assembler \ --with-mysqld-ldflags=-all-static |
The full configure
line would, in other words, be something like the
following for all recent gcc
versions:
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 |
The binaries we provide on the MySQL web site at http://www.mysql.com/ are all compiled with full optimization and should be perfect for most users. See section 2.1.2.5 MySQL Binaries Compiled by MySQL AB. There are some configuration setings you can tweak to make an even faster binary, but this is only for advanced users. See section 7.5.3 How Compiling and Linking Affects the Speed of MySQL.
If the build fails and produces errors about your compiler or linker not
being able to create the shared library `libmysqlclient.so.#' (`#'
is a version number), you can work around this problem by giving the
--disable-shared
option to configure
. In this case,
configure
will not build a shared `libmysqlclient.so.#' library.
DEFAULT
column values for
non-NULL
columns (that is, columns that are not allowed to be
NULL
). See section 1.8.6.2 Constraint NOT NULL
and DEFAULT
values.
shell> CXXFLAGS=-DDONT_USE_DEFAULT_FIELDS ./configure |
The effect of this flag is to cause any INSERT
statement to fail unless
it provides explicit values for all columns that require a non-NULL
value.
--with-charset
option:
shell> ./configure --with-charset=CHARSET |
CHARSET
may be one of 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
, or win1251ukr
.
See section 5.7.1 The Character Set Used for Data and Sorting.
If you want to convert characters between the server and the client,
you should take a look at the SET CHARACTER SET
command.
See section SET
.
Warning: If you change character sets after having created any
tables, you will have to run myisamchk -r -q --set-character-set=charset
on every table. Your
indexes may be sorted incorrectly otherwise. (This can happen if you
install MySQL, create some tables, then reconfigure
MySQL to use a different character set and reinstall it.)
With the configure
option --with-extra-charsets=LIST
, you can
define which additional character sets should be compiled into the server.
LIST
is either a list of character sets separated with spaces,
complex
to include all characters that can't be dynamically loaded,
or all
to include all character sets into the binaries.
--with-debug
option:
shell> ./configure --with-debug |
--enable-thread-safe-client
configure options. This will create a
libmysqlclient_r
library with which you should link your threaded
applications. See section 19.1.14 How to Make a Threaded Client.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |