第2章:安装MySQL / 2.8. 使用源码分发版安装MySQL
2.8.1. 源码安装概述
2.8.2. 典型配置选项
2.8.3. 从开发源码树安装
2.8.4. 处理MySQL编译问题
2.8.5. MIT-pthreads注意事项
2.8.6. 在Windows下从源码安装MySQL
2.8.7. 在Windows下编译MySQL客户端

安装源码之前,首先检查我们的二进制是否适合你的平台,是否可以工作。我们做了大量的工作确保我们的二进制用最合适的选项来构建。

要获得MySQLa 源码分发版,参见2.1.3节,“怎样获得MySQL”

MySQL源码分发版为tar压缩文件,文件名格式为mysql-VERSION.tar.gz,其中 VERSION是版本号,例如5.1.2-alpha

你需要下列工具构造并安装MySQL源码:

·         GNU gunzip解压缩该分发版。

·         一个适当的tar解包分发版。GNU tar已知可以。一些操作系统中含有预安装的tar,已知有问题。例如,已知Mac OS X tarSun tar对于长文件名有问题。在Mac OS X中,你可以使用预安装的gnutar程序。在其它系统中若tar不完善,你应当首先安装GNU tar

·         一个能工作的ANSI C++编译器。gcc> = 2.95.2egcs> = 1.0.2egcs 2.91.66SGI C++SunPro C++是一些已知能工作的编译器。当使用gcc时,不需要libg++gcc2.7.x有一个缺陷,使得它可能不能编译一些完全合法的C++文件,例如“sql/sql_base.cc”。如果你仅有gcc2.7.x,你必须升级gcc才能编译MySQL。已知gcc 2.8.1在某些平台上有一些问题,因此如果平台上有新的编译器,则不要使用gcc 2.8.1

编译MySQL 3.23.x时,建议使用gcc 2.95.2或更新版。

·         一个优秀的make程序。总是推荐GNU make且有时必须使用。如果你有问题我们推荐试一试GNU make3.75或更新版

如果你使用的gcc版本足够新,可以识别-fno-exceptions选项,则使用该选项非常重要。否则,你编译二进制时出现问题。我们建议你同时使用-felide-constructors-fno-rtti选项。当有疑问时,执行下面操作:

CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors \
       -fno-exceptions -fno-rtti" ./configure \
       --prefix=/usr/local/mysql --enable-assembler \
       --with-mysqld-ldflags=-all-static

在大多数系统中,可以得到快速、稳定的二进制。

如果你遇到问题,在把问题邮寄到MySQL邮件目录时,请总是使用mysqlbug,就算问题不是一个缺陷,mysqlbug收集系统信息,将有助于其它人解决你的问题。不使用mysqlbug,你将减少得到问题的解决方案的可能性!在解包分发版后,你会在“bin目录下找到mysqlbug。请参见1.7.1.3节,“如何通报缺陷和问题”