DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(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