2.2 使用通用二进制文件在 Unix/Linux 上安装 MySQL

Oracle 提供了一组 MySQL 二进制发行版。这些文件包括用于多个平台的压缩二进制文件(extensions 为 tar_)的通用二进制发行版,以及用于特定平台的特定于平台的软件包格式的二进制文件。

本节介绍了如何从 Unix/Linux 平台上的 tar 文件压缩二进制分发版中安装 MySQL。有关其他特定于平台的二进制软件包格式,请参见本手册中的其他特定于平台的部分。例如,对于 Windows 发行版,请参阅第 2.3 节“在 Microsoft Windows 上安装 MySQL”。有关如何获取不同分发格式的 MySQL 的信息,请参见第 2.1.2 节“如何获取 MySQL”

MySQL 压缩的 tar 文件二进制发行版本的名称格式为mysql-VERSION-OS.tar.gz,其中VERSION是数字(例如5.7.32),* OS *指示发行版本所针对的 os 类型(例如pc-linux-i686winx64)。

Warnings

  • 如果以前使用 os 本机软件包 Management 系统(例如 Yum 或 APT)安装了 MySQL,则在使用本机二进制文件安装时可能会遇到问题。确保以前的 MySQL 安装已完全删除(使用程序包 Management 系统),并且所有其他文件(例如数据文件的旧版本)也已删除。您还应该检查配置文件(例如/etc/my.cnf/etc/mysql目录)并将其删除。

有关使用官方 MySQL 软件包替换第三方软件包的信息,请参阅相关的APT guideYum guide

  • MySQL 依赖于libaio库。如果未在本地安装此库,则数据目录初始化和随后的服务器启动步骤将失败。如有必要,请使用适当的程序包 Management 器进行安装。例如,在基于百胜的系统上:

shell> yum search libaio  # search for info
shell> yum install libaio # install library

或者,在基于 APT 的系统上:

shell> apt-cache search libaio # search for info
shell> apt-get install libaio1 # install library
  • *对于 MySQL 5.7.19 及更高版本:*对非统一内存访问(NUMA)的支持已添加到通用 Linux 版本中,该版本现在依赖于libnuma库;如果您的系统上尚未安装该库,请使用系统的程序包 Management 器搜索并安装它(有关某些示例命令,请参见前面的项目)。

  • SLES 11 :从 MySQL 5.7.19 开始,Linux Generic tarball 软件包格式为 EL6 而不是 EL5.作为副作用,MySQLClient 端 bin/mysql 需要libtinfo.so.5

解决方法是在 64 位系统上创建符号链接,例如 ln -s libncurses.so.5.6 /lib64/libtinfo.so.5ln -s libncurses.so.5.6/lib/libtinfo 在 32 位系统上为.so.5

要安装压缩的 tar 文件二进制发行版,请在您选择的安装位置(通常为/usr/local/mysql)解压缩。这将创建下 table 中显示的目录。

table2.3 通用 Unix/Linux 二进制软件包的 MySQL 安装布局

Directory目录内容
binmysqld服务器,Client 端和 Util
docs信息格式的 MySQL 手册
manUnix 手册页
include包含(头)文件
libLibraries
share错误消息,字典和用于数据库安装的 SQL
support-files杂项支持文件

mysqld二进制文件的调试版本以mysqld-debug的形式提供。要从源代码分发中编译自己的 MySQL 调试版本,请使用适当的配置选项来启用调试支持。参见第 2.9 节“从源代码安装 MySQL”

要安装和使用 MySQL 二进制发行版,命令序列如下所示:

shell> groupadd mysql
shell> useradd -r -g mysql -s /bin/false mysql
shell> cd /usr/local
shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz
shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell> cd mysql
shell> mkdir mysql-files
shell> chown mysql:mysql mysql-files
shell> chmod 750 mysql-files
shell> bin/mysqld --initialize --user=mysql
shell> bin/mysql_ssl_rsa_setup
shell> bin/mysqld_safe --user=mysql &
# Next command is optional
shell> cp support-files/mysql.server /etc/init.d/mysql.server

Note

此过程假定您具有对系统的root(Management 员)访问权限。另外,您可以使用 sudo (Linux)或 pfexec (Solaris)命令为每个命令添加前缀。

mysql-files目录提供了一个方便的位置,用作secure_file_priv系统变量的值,该值将导入和导出操作限制到特定目录。参见第 5.1.7 节“服务器系统变量”

以下是用于安装二进制分发版的上述说明的详细版本。

创建一个 mysql 用户和组

如果您的系统尚无要用于运行mysqld的用户和组,则可能需要创建它们。以下命令添加mysql组和mysql用户。您可能想给用户打电话并分组其他而不是mysql。如果是这样,请在以下说明中替换适当的名称。在不同版本的 Unix/Linux 上, useraddgroupadd 的语法可能略有不同,或者它们的名称也可能不同,例如 adduseraddgroup

shell> groupadd mysql
shell> useradd -r -g mysql -s /bin/false mysql

Note

因为仅出于所有权目的而不是登录目的才需要该用户,所以 useradd 命令使用-r-s /bin/false选项来创建对服务器主机没有登录权限的用户。如果您的 useradd 不支持这些选项,请忽略这些选项。

获取并解压缩发行版

选择要在其中解压缩发行版并将目录更改到其中的目录。此处的示例解压缩/usr/local下的发行版。因此,这些说明假定您有权在/usr/local中创建文件和目录。如果该目录受保护,则必须以root的身份执行安装。

shell> cd /usr/local

按照第 2.1.2 节“如何获取 MySQL”中的说明获取分发文件。对于给定的发行版,所有平台的二进制发行版都是从相同的 MySQL 源发行版构建的。

解压缩发行版,创建安装目录。如果 tar 具有z选项支持,则可以解压缩和解压缩发行版:

shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz

tar 命令创建一个名为mysql-VERSION-OS的目录。

要从压缩的 tar 文件二进制发行版安装 MySQL,您的系统必须具有 GNU gunzip来解压缩发行版,并且必须具有合理的 tar 来解压缩它。如果您的 tar 程序支持z选项,则它可以解压缩和解 zipfile。

GNU tar 可以工作。某些 os 随附的标准 tar 无法解压缩 MySQL 发行版中的长文件名。您应该下载并安装 GNU tar ,或者使用 GNU tar 的预装版本(如果可用)。通常,可以在 GNU 或自由软件目录(例如/usr/sfw/bin/usr/local/bin)中以 gnutargtartar 的形式使用。 GNU tar 可从http://www.gnu.org/software/tar/获得。

如果您的 tar 不支持z选项,请使用 gunzip 来解压缩发行版,并使用 tar 来解压缩。用以下替代命令替换前面的 tar 命令以解压缩并提取分发:

shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf -

接下来,创建一个符号链接到 tar 创建的安装目录:

shell> ln -s full-path-to-mysql-VERSION-OS mysql

ln命令构建到安装目录的符号链接。这使您可以更轻松地将其称为/usr/local/mysql。为了避免在使用 MySQL 时总是必须键入 Client 端程序的路径名,可以将/usr/local/mysql/bin目录添加到PATH变量中:

shell> export PATH=$PATH:/usr/local/mysql/bin

执行安装后设置

安装过程的其余部分涉及设置分发所有权和访问权限,初始化数据目录,启动 MySQL 服务器以及设置配置文件。有关说明,请参见第 2.10 节“安装后的设置和测试”