安装源码之前,首先检查我们的二进制是否适合你的平台,是否可以工作。我们做了大量的工作确保我们的二进制用最合适的选项来构建。
要获得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 tar和Sun tar对于长文件名有问题。在Mac OS X中,你可以使用预安装的gnutar程序。在其它系统中若tar不完善,你应当首先安装GNU tar。
· 一个能工作的ANSI C++编译器。gcc> = 2.95.2、egcs> = 1.0.2或egcs 2.91.66、SGI 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节,“如何通报缺陷和问题”。