DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(mysql.info) configure-options

Info Catalog (mysql.info) quick-install (mysql.info) installing-source (mysql.info) 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. See 
 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 have no C++ compiler, `mysql' cannot be compiled (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 should 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'),
      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'.
 
      You can also specify the locations at server startup time by using
      a MySQL option file. See  option-files.
 
    * If you are using Unix and you want the MySQL socket file location
      to be 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' at server startup by using a
      MySQL option file. See  problems-with-mysql-sock.
 
    * If you want to compile statically linked programs (for example, to
      make a binary distribution, to get better performance, 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 does not attempt to
      link in `libg++' or `libstdc++'. This may be a good thing to do
      even if you have those libraries installed. 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://dev.mysql.com/downloads/' are all compiled with full
      optimization and should be perfect for most users. See 
      mysql-binaries. There are some configuration settings you can
      tweak to build an even faster binary, but these are only for
      advanced users. See  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.N' (where N is a version number), you can work
      around this problem by giving the -disable-shared option to
      `configure'. In this case, `configure' does not build a shared
      `libmysqlclient.so.N' library.
 
    * By default, MySQL uses the `latin1' (cp1252 West European)
      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  character-sets.
 
      The default collation may also be specified. MySQL uses the
      `latin1_swedish_ci' collation by default.  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 use the `SET NAMES' statement. See 
      set-option, and  charset-connection.
 
      *Warning:* If you change character sets after having created any
      tables, you must run `myisamchk -r -q
      --set-collation=COLLATION_NAME' _on every table_. Your indexes may
      be sorted incorrectly otherwise. This can happen if you install
      MySQL, create some tables, and 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 one of the following:
 
         * A list of character set names separated by spaces
 
         * `complex' to include all character sets that can't be
           dynamically loaded
 
         * `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
       debugging-server.
 
    * If your client programs are using threads, you must compile a
      thread-safe version of the MySQL client library with the
      -enable-thread-safe-client configure option. This creates a
      `libmysqlclient_r' library with which you should link your threaded
      applications. See  threaded-clients.
 
    * It is possible to build MySQL 5.0 with large table support using
      the -with-big-tables option, beginning with MySQL 5.0.4.
 
      This option causes the variables used to keep table row counts to
      be stored using `unsigned long long' rather than `unsigned long'.
      What this does is to allow tables to hold up to approximately
      1.844E+19 ((232)2) rows rather than 232 (~4.295E+09) rows.
      Previously it was necessary to pass -DBIG_TABLES to the compiler
      manually in order to enable this feature.
 
    * Options that pertain to particular operating systems can be found
      in the system-specific section of this manual. See 
      operating-system-specific-notes.
 
Info Catalog (mysql.info) quick-install (mysql.info) installing-source (mysql.info) installing-source-tree
automatically generated byinfo2html