MYSQL典型的configure选项

  configure脚本给你一个很大的控制权来如何配置你的MySQL分发。典型地,你使用configure命令行的选项进行。你也可以用正确的环境变量作用于configure。对于一个由configure支持的选择列表,运行这个命令:

shell> ./configure -- help

  一些更常用的configure选项见下面的描述:

    * 只编译MySQL客户库和客户程序而不是服务器,使用--without-server选项:

shell> ./configure --without-server

      如果你没有一个 C++ 编译器,mysql将不编译(有一个客户程序需要C++)。在这种情况下,你可以去掉configure里面测试C++编译器的代码,然后运行带有 --without-server选项的./configure。编译步骤步将仍然尝试构造mysql,但是你可以忽略任何关于“ mysql.cc ”的警告。(如果make停止,试试make -k告诉它即使出错继续剩下的构造步骤)。
    * 如果你不想要位于“/usr/local/var”目录下面的日志(log)文件和数据库,使用类似于下列configure命令的一个:

shell>./configure--prefix=/usr/local/mysql
shell>./configure--prefix=/usr/local --localstatedir=/usr/local/mysql/data

      第一个命令改变安装前缀以便任何东西被安装在“/usr/local/mysql”下面而非缺省的“/usr/local”。第二个命令保留缺省安装前缀,但是覆盖了数据库目录缺省目录(通常是“/usr/local/var”)并且把它改/usr/local/mysql/data.
    * 如果你正在使用Unix并且你想要MySQL的套接字位于缺省地点以外的某个地方(通常在目录“/tmp”或“/var/run”,使用象这样的configure的命令:

shell> ./configure -- with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock

      注意给出的文件必须是一个绝对路径!
    * 如果你想编译静态链接程序(例如,制作二进制分发、获得更快的速度或与解决与RedHat分发的一些),像这样运行configure:

shell>./configure --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static

    * 如果你正在使用gcc并且没有安装libg++或libstdc++,你可以告诉configure使用gcc作为C++编译器:

shell> CC=gcc  CXX=gcc  ./configure

      当你使用时gcc作为C++编译器是,它将不试图链接libg++或libstdc++。如果构造失败并且产生有关编译器或链接器的错误,不能创建共享库 “libmysqlclient.so.#”(“#”是一个版本号), 你可以通过为configure指定--disable-shared选项来解决此问题。在这种情况下,configure将不构造一个共享 libmysqlclient.so.#库。
    * 你可以设置MySQL对于非NULL的列不使用DEFAULT列值(即,不允许列是NULL)。这导致INSERT语句产生一个错误,除非你明确地为所有要求非NULL值的列指定值。为了禁止使用缺省值,这样运行configure:

shell> CXXFLAGS=-DDONT_USE_DEFAULT_FIELDS  ./configure

    * 缺省地,MySQL使用ISO-8859-1(Latin1)字符集。为了改变缺省设置,使用--with-charset选项目:

shell> ./configure -- with-charset=CHARSET

      CHARSET可以是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、 win1251或win1251ukr之一。见9.1.1 用于数据和排序的字符集。注意:如果你想要改变字符集,你必须在配置期间做make distclean!如果你想在服务器和客户之间变换字符,你应该看一下SET OPTION CHARACTER SET命令。见7.25 SET OPTION句法。警告:如果你在创建了任何数据库表之后改变字符集,你将必须对每个表运行myisamchk -r -q,否则你的索引可能不正确地排序。(如果你安装了MySQL,创建一些表,然后重新配置MySQL使用一个不同的字符集并且重新安装它,这时就可能发生这种情况。)
    * 为了配置MySQL带有调试代码,使用--with-debug选项:

shell> ./configure --with-debug

      这导致包含一个安全的内存分配器,能发现一些错误和并提供关于正在发生的事情的输出。见G.1调试一个MySQL服务器。
    * 属于特定系统的选项可在本章特定系统的小节里找到。见4.11 系统特定的问题。