GNU Info

Info Node: (mysql.info)configure options

(mysql.info)configure options


Next: Installing source tree Prev: Applying patches Up: Installing source
Enter node , (file) or (file)node

Typical `configure' Options
---------------------------

The `configure' script gives you a great deal of control over how you
configure your MySQL distribution.  Typically you do this using options
on the `configure' command line.  You can also affect `configure' using
certain environment variables.  Note: 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 below:

   * 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 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'.

   * 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

     Note that the given file must be an absolute pathname!  You can
     also later change the location `mysql.sock' by using the MySQL
     option files. *Note 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 RedHat 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++'.

     Here is some common environment variables to set depending on the
     compiler you are using:

     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   CFLAGS="-O3 -mpentiumpro -mstack-align-double"
     or newer      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 above 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.  Note: MySQL binaries.  There
     are some things you can tweak to make an even faster binary, but
     this is only for advanced users.  Note: 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.#' (`#' 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').  This causes `INSERT' statements to generate an error
     unless you explicitly specify values for all columns that require a
     non-`NULL' value.  To suppress use of default values, run
     `configure' like this:

          shell> CXXFLAGS=-DDONT_USE_DEFAULT_FIELDS ./configure

   * By default, MySQL uses the ISO-8859-1 (Latin1) 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'.  Note: Character sets.

     If you want to convert characters between the server and the
     client, you should take a look at the `SET OPTION CHARACTER SET'
     command.  Note: `SET OPTION'.

     *Warning:* If you change character sets after having created any
     tables, you will have to run `myisamchk -r -q' 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 option `--with-extra-charset=LIST' you can define which
     additional character sets should be incompiled in the server.

     Here `LIST' is either a list of character set separated with space,
     `complex' to include all characters 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.
     Note: Debugging server.

   * If your client programs are using threads, you need to also
     compile a thread-safe version of the MySQL client library with the
     `--enable-thread-safe-client' configure options. This will create a
     `libmysqlclient_r' library with which you should link your threaded
     applications.  Note: Threaded clients.

   * Options that pertain to particular systems can be found in the
     system-specific section of this manual.  Note: Operating System
     Specific Notes.


automatically generated by info2www version 1.2.2.9