2.8.4 使用标准源分布安装 MySQL
从标准源分布中安装 MySQL:
-
验证您的系统满足在第2.8.2节,“Source Installation Prerequisites”中列出的工具要求。
-
使用第2.1.3节,“How to Get MySQL”中的指令获取分布文件。
-
使用本节中的指令配置、编译和安装分布文件。
-
执行第2.9节,“Postinstallation Setup and Testing”中的指令进行后安装程序。
MySQL 使用CMake作为所有平台的构建框架。这些指令应该使您能够生产一个工作的安装。关于使用CMake来构建 MySQL 的更多信息,请参阅使用 CMake 构建 MySQL 服务器。
如果您从源 RPM 开始,使用以下命令创建一个可以安装的二进制 RPM。 如果您没有rpmbuild,请使用rpm代替。
$> rpmbuild --rebuild --clean MySQL-VERSION.src.rpm
结果是一个或多个二进制 RPM 包,您可以按照第2.5.4节,“使用 Oracle 提供的 RPM 包在 Linux 上安装 MySQL”中的指令进行安装。
从压缩tar文件或Zip归档源分布安装的顺序类似于使用通用二进制分布安装的过程(见第2.2节,“使用通用二进制文件在Unix/Linux上安装MySQL”),except that it is used on all platforms and includes steps to configure and compile the distribution。例如,在Unix上使用压缩tar文件源分布的基本安装命令序列如下:
# Preconfiguration setup
$> groupadd mysql
$> useradd -r -g mysql -s /bin/false mysql
# Beginning of source-build specific instructions
$> tar zxvf mysql-VERSION.tar.gz
$> cd mysql-VERSION
$> mkdir bld
$> cd bld
$> cmake ..
$> make
$> make install
# End of source-build specific instructions
# Postinstallation setup
$> cd /usr/local/mysql
$> mkdir mysql-files
$> chown mysql:mysql mysql-files
$> chmod 750 mysql-files
$> bin/mysqld --initialize --user=mysql
$> bin/mysqld_safe --user=mysql &
# Next command is optional
$> cp support-files/mysql.server /etc/init.d/mysql.server
以下是详细的源-构建特定指令的示例。
以下过程不设置MySQL账户的密码。完成后续程,转到第2.9节,“安装后的设置和测试”,进行安装后的设置和测试。
在Unix上,设置拥有数据库目录的mysql
用户,并将该用户添加到组中。详见创建mysql用户和组。然后,以mysql
用户身份执行以下步骤,除非另有说明。
选择要解压分布的目录,并切换到该目录。
使用第2.1.3节,“如何获取MySQL”中的说明获取分布文件。
解压分布到当前目录:
-
要解压压缩的tar文件,可以使用tar将其解压和解包,如果它支持
z
选项:$> tar zxvf mysql-VERSION.tar.gz
如果您的tar不支持
z
选项,可以使用gunzip将分布解压,然后使用tar将其解包:$> gunzip < mysql-VERSION.tar.gz | tar xvf -
Alternatively,使用CMake可以解压缩和解包分布文件:
$> cmake -E tar zxvf mysql-VERSION.tar.gz
-
要解压缩Zip归档,请使用WinZip或其他可以读取
.zip
文件的工具。
解压缩分布文件创建一个名为mysql-
的目录。VERSION
切换到解包分布文件的顶级目录:
$> cd mysql-VERSION
在源树外部构建以保持树干清洁。如果源树的顶级目录名为mysql-src
,当前工作目录,您可以在同一级别的目录名为build
中构建。创建该目录并切换到那里:
$> mkdir bld
$> cd bld
配置构建目录。最小配置命令包括不包含任何选项以覆盖默认配置:
$> cmake ../mysql-src
构建目录不需要在源树外部。例如,您可以在名为build
的目录下构建,位于顶级源树中。要实现此操作,请从当前工作目录mysql-src
开始,创建名为build
的目录,然后切换到那里:
$> mkdir build
$> cd build
配置构建目录。最小配置命令包括不包含任何选项以覆盖默认配置:
$> cmake ..
如果您有多个源树在同一级别(例如,为了构建多个MySQL版本),第二种策略可能会更有优势。第一种策略将所有build目录置于同一级别,这需要您为每个build目录选择唯一的名称。使用第二种策略,您可以在每个源树中使用相同的build目录名称。以下指令假设使用了第二种策略。
在Windows上,指定开发环境。例如,以下命令将MySQL配置为32位或64位构建,分别:
$> cmake .. -G "Visual Studio 12 2013"
$> cmake .. -G "Visual Studio 12 2013 Win64"
在macOS上,使用Xcode IDE:
$> cmake .. -G Xcode
当您运行Cmake时,您可能想添加选项到命令行。以下是一些示例:
-
-DBUILD_CONFIG=mysql_release
: 使用Oracle用于生产官方MySQL发行版的同样构建选项来配置源。 -
-DCMAKE_INSTALL_PREFIX=
: 配置分布式安装到特定位置。dir_name
-
-DCPACK_MONOLITHIC_INSTALL=1
: 使make package生成单个安装文件,而不是多个文件。 -
-DWITH_DEBUG=1
: 使用调试支持来构建分布式。
要查看更多选项,请参阅第2.8.7节,“MySQL源配置选项”。
要列出配置选项,可以使用以下命令之一:
$> cmake .. -L # overview
$> cmake .. -LH # overview with help text
$> cmake .. -LAH # all params with help text
$> ccmake .. # interactive display
如果CMake失败,您可能需要重新配置,运行它再次使用不同的选项。如果您重新配置,请注意以下几点:
-
如果CMake在之前已经运行过,它可能会使用之前的invocation中收集的信息。这一信息存储在
CMakeCache.txt
文件中。当CMake启动时,它将查找该文件并读取其内容,如果存在,假设信息仍然正确。但是,这个假设在重新配置时无效。 -
每次运行CMake,您都需要再次运行make以重新编译。然而,您可能想先删除以前的对象文件,因为它们使用了不同的配置选项。
要防止旧的对象文件或配置信息被使用,在Unix上在build目录中运行以下命令之前重新运行CMake:
$> make clean
$> rm CMakeCache.txt
或者,在Windows上:
$> devenv MySQL.sln /clean
$> del CMakeCache.txt
在向MySQL Community Slack提交问题前,请检查CMakeFiles
目录中的文件,以获取有用的信息关于失败。要提交bug报告,请使用第1.6节,“如何报告错误或问题”中的指令。
Unix 上:
$> make
$> make VERBOSE=1
第二个命令将VERBOSE
设置为显示每个编译源的命令。
使用gmake,因为在使用 GNU make且已经安装了gmake的系统上。
Windows 上:
$> devenv MySQL.sln /build RelWithDebInfo
如果您已经到达编译阶段,但分布式不构建,请参阅第 2.8.8 节,“解决 MySQL 编译问题”,以获取帮助。如果这不能解决问题,请使用第 1.6 节,“报告错误或问题”中的指令将其输入到我们的错误数据库中。 如果您已经安装了最新版本的所需工具,但它们在处理我们的配置文件时崩溃,请报告该问题。但是,如果您收到command not found
错误或类似问题,因为所需工具,您不应该报告它。相反,确保所有所需工具已经安装,并且您的PATH
变量正确设置,以便您的 shell 可以找到它们。
Unix 上:
$> make install
这将在配置的安装目录(默认为/usr/local/mysql
)下安装文件。您可能需要以root
身份运行命令。
要在特定的目录中安装,请在命令行添加一个DESTDIR
参数:
$> make install DESTDIR="/opt/mysql"
或者生成安装包文件,可以在您想要的地方安装:
$> make package
这项操作将产生一个或多个.tar.gz
文件,可以像通用二进制分发包一样安装。请参阅第2.2节,“使用通用二进制文件在Unix/Linux上安装MySQL”。如果您使用CMake运行-DCPACK_MONOLITHIC_INSTALL=1
,操作将产生单个文件;否则,它将产生多个文件。
在Windows上,生成数据目录,然后创建.zip
归档安装包:
$> devenv MySQL.sln /build RelWithDebInfo /project initial_database
$> devenv MySQL.sln /build RelWithDebInfo /project package
您可以将结果.zip
归档安装到您想要的地方。请参阅第2.3.3节,“手动配置”。
安装过程的其余部分涉及设置配置文件、创建核心数据库和启动MySQL服务器。请参阅第2.9节,“安装后设置和测试”。
初始在MySQL授权表中列出的帐户没有密码。启动服务器后,您应该使用第2.9节,“安装后设置和测试”中的指令来为它们设置密码。