从源代码安装 MySQL 需要多个开发工具。无论使用标准源码发行版还是开发源码树,都需要其中一些工具。其他工具要求取决于您使用的安装方法。
要从源代码安装 MySQL,必须满足以下系统要求,无论安装方法如何
CMake,它用作所有平台上的构建框架。您可以从 http://www.cmake.org 下载 CMake。
一个好的 make 程序。尽管某些平台自带 make 实现,但强烈建议您使用 GNU make 3.75 或更高版本。它可能已在您的系统上可用,名为 gmake。您可以从 http://www.gnu.org/software/make/ 获取 GNU make。
在类 Unix 系统(包括 Linux)上,您可以像这样检查系统的 make 版本
$> make --version GNU Make 4.2.1
MySQL 8.4 源代码允许使用 C++17 功能。为了在所有支持的平台上启用必要的 C++17 支持级别,以下最小编译器版本适用
Linux:GCC 10 或 Clang 12
macOS:XCode 10
Solaris:GCC 10
Windows:Visual Studio 2019
MySQL C API 需要 C++ 或 C99 编译器才能进行编译。
SSL 库是支持加密连接、随机数生成熵和其他加密相关操作所必需的。默认情况下,构建使用主机系统上安装的 OpenSSL 库。要显式指定库,请在调用 CMake 时使用
WITH_SSL
选项。有关更多信息,请参见 第 2.8.6 节,“配置 SSL 库支持”。Boost C++ 库 是构建 MySQL 所必需的(但不使用它)。在 MySQL 8.3 及更高版本中,这些库始终与 MySQL 源代码捆绑在一起。
ncurses 库。
足够的可用内存。如果您在编译大型源文件时遇到构建错误,例如 内部编译器错误,可能是您的内存不足。如果在虚拟机上进行编译,请尝试增加内存分配。
如果您打算运行测试脚本,则需要 Perl。大多数类 Unix 系统都包含 Perl。对于 Windows,您可以使用 ActiveState Perl 或 Strawberry Perl。
要从标准源码发行版安装 MySQL,需要以下工具之一来解压缩发行版文件
对于
.tar.gz
压缩的 tar 文件:GNUgunzip
用于解压缩发行版,一个合理的 tar 用于解压缩它。如果您的 tar 程序支持z
选项,它可以同时解压缩和解压缩文件。GNU tar 已知可以工作。某些操作系统提供的标准 tar 无法解压缩 MySQL 发行版中的长文件名。您应该下载并安装 GNU tar,或者如果可用,使用已安装的 GNU tar 版本。通常,它在 GNU 或 Free Software 目录中可用,例如
/usr/sfw/bin
或/usr/local/bin
。您可以从 https://www.gnu.org/software/tar/ 获取 GNU tar。对于
.zip
Zip 归档文件:WinZip 或其他可以读取.zip
文件的工具。对于
.rpm
RPM 包:用于构建发行版的 rpmbuild 程序会解压缩它。
要从开发源码树安装 MySQL,需要以下附加工具
Git 版本控制系统是获取开发源码所必需的。您可以从 GitHub 帮助 获取在不同平台上下载和安装 Git 的说明。
bison 2.1 或更高版本,可从 http://www.gnu.org/software/bison/ 获取。(版本 1 不再受支持。)尽可能使用最新版本的 bison;如果您遇到问题,请升级到更高版本,而不是恢复到更早的版本。
bison 可从 http://www.gnu.org/software/bison/ 获取。您可以从 http://gnuwin32.sourceforge.net/packages/bison.htm 下载 Windows 的
bison
。下载标记为““完整包,不含源代码” 的包。在 Windows 上,bison 的默认位置是C:\Program Files\GnuWin32
目录。某些实用程序可能无法找到 bison,因为目录名称中包含空格。此外,如果路径中包含空格,Visual Studio 可能会直接挂起。您可以通过安装到不包含空格的目录(例如C:\GnuWin32
)来解决这些问题。在 Solaris Express 上,除了 bison 之外,还必须安装 m4。您可以从 http://www.gnu.org/software/m4/ 获取 m4。
如果您必须安装任何程序,请修改您的 PATH
环境变量以包含程序所在的任何目录。请参见 第 6.2.9 节,“设置环境变量”。
如果您遇到问题需要提交错误报告,请使用第 1.6 节“如何报告错误或问题”中的说明。