Copyright (C) 2000-2012 |
GNU Info (mysql.info)configure optionsTypical `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 |