| [ < ] | [ > ] | [ << ] | [ 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 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 get an 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. See section Using 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 later change the location of `mysql.sock' by using a MySQL option file. See section 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. See section MySQL Binaries Compiled by MySQL AB. There are some configuration settings you can tweak to make an even faster binary, but these are only for advanced users. See section 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.#' (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.
You can configure MySQL not to use DEFAULT column values for
non-NULL columns (that is, columns that are not allowed to be
NULL). See section 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 includes explicit values for all columns that require a non-NULL
value.
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.
See section The Character Set Used for Data and Sorting.
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.
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 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. See section Debugging a MySQL 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. See section How to Make a Threaded Client.
Options that pertain to particular systems can be found in the system-specific section of this manual. See section Operating System-Specific Notes.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated on July, 26 2004 using texi2html 1.70.