(mysql.info.gz) configure options
Info Catalog
(mysql.info.gz) Quick install
(mysql.info.gz) Installing source
(mysql.info.gz) Installing source tree
2.8.2 Typical `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. 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:
* To compile just the MySQL client libraries and client programs and
not the server, use the `--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.)
* If you want to build the embedded MySQL library (`libmysqld.a')
you should use the `--with-embedded-server' option.
* If you don't want your log files and database directories located
under `/usr/local/var', use a `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. Option files.
* If you are using Unix and you want the MySQL socket located
somewhere other than the default location (normally in the
directory `/tmp' or `/var/run'), use a `configure' command like
this:
shell> ./configure \
--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock
The socket filename must be an absolute pathname. You can also
change the location of `mysql.sock' later by using a MySQL option
file. Problems with `mysql.sock' Problems with mysql.sock.
* If you want to compile statically linked programs (for example, to
make a binary distribution, to get more speed, or to work around
problems with some Red Hat Linux distributions), run `configure'
like this:
shell> ./configure --with-client-ldflags=-all-static \
--with-mysqld-ldflags=-all-static
* If you are using `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 these libraries installed, because some versions
of them 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 optimized 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. MySQL binaries. There
are some configuration settings you can tweak to make an even
faster binary, but these are only for advanced users.
Compile and link options.
If the build fails and produces errors about your compiler or
linker not being able to create the shared library
`libmysqlclient.so.#' (where `#' 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.
* By default, MySQL uses the `latin1' (ISO-8859-1) character set. To
change the default set, use the `--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'. Character sets.
As of MySQL 4.1.1, the default collation may also be specified.
MySQL uses the `latin1_swedish_ci' collation. To change this, use
the `--with-collation' option:
shell> ./configure --with-collation=COLLATION
To change both the character set and the collation, use both the
`--with-charset' and `--with-collation' options. The collation
must be a legal collation for the character set. (Use the `SHOW
COLLATION' statement to determine which collations are available
for each character set.)
If you want to convert characters between the server and the
client, you should take a look at the `SET CHARACTER SET'
statement. `SET' SET OPTION.
*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 set names separated by
spaces, `complex' to include all character sets that can't be
dynamically loaded, or `all' to include all character sets into
the binaries.
* To configure MySQL with debugging code, use the `--with-debug'
option:
shell> ./configure --with-debug
This causes a safe memory allocator to be included that can find
some errors and that provides output about what is happening.
Debugging server.
* If your client programs are using threads, you also must compile a
thread-safe version of the MySQL client library with the
`--enable-thread-safe-client' configure option. This will create a
`libmysqlclient_r' library with which you should link your threaded
applications. Threaded clients.
* Options that pertain to particular systems can be found in the
system-specific section of this manual. Operating System
Specific Notes.
Info Catalog
(mysql.info.gz) Quick install
(mysql.info.gz) Installing source
(mysql.info.gz) Installing source tree
automatically generated byinfo2html