Oracle 提供了一套 MySQL 的二进制发行版。其中包括针对多个平台的压缩 tar 文件形式的通用二进制发行版(扩展名为 .tar.xz
的文件),以及针对选定平台的平台特定软件包格式的二进制文件。
本节介绍如何在 Unix/Linux 平台上从压缩 tar 文件二进制发行版安装 MySQL。有关针对 MySQL 安全特性的 Linux 通用二进制发行版安装说明,请参阅 安全部署指南。对于其他平台特定二进制软件包格式,请参阅本手册中的其他平台特定部分。例如,对于 Windows 发行版,请参阅 第 2.3 节,“在 Microsoft Windows 上安装 MySQL”。有关如何获取不同发行版格式的 MySQL,请参阅 第 2.1.3 节,“如何获取 MySQL”。
MySQL 压缩 tar 文件二进制发行版的文件名格式为 mysql-
,其中 VERSION
-OS
.tar.xz
是一个数字(例如,VERSION
9.0.0
),而 OS
指示该发行版适用的操作系统类型(例如,pc-linux-i686
或 winx64
)。
还存在一个针对 Linux 通用二进制发行版的 MySQL 压缩 tar 文件的 “最小安装” 版本,其文件名格式为 mysql-
。最小安装发行版不包含调试二进制文件,并且已去除调试符号,使其的大小明显小于常规二进制发行版。如果您选择安装最小安装发行版,请记住在以下说明中调整文件名格式差异。VERSION
-OS
-GLIBCVER
-ARCH
-minimal.tar.xz
如果您之前使用过操作系统的原生软件包管理系统(如 Yum 或 APT)安装了 MySQL,那么您可能会在使用原生二进制文件安装时遇到问题。确保您的先前 MySQL 安装已完全删除(使用您的软件包管理系统),并且任何其他文件(例如旧版本的数据文件)也已删除。您还应检查配置文件,例如
/etc/my.cnf
或/etc/mysql
目录,并将其删除。有关用官方 MySQL 软件包替换第三方软件包的信息,请参阅 替换原生第三方 MySQL 发行版 或 使用 MySQL APT 仓库替换原生 MySQL 发行版。
MySQL 依赖于
libaio
库。如果该库未在本地安装,则数据目录初始化和后续服务器启动步骤将失败。如有必要,请使用适当的软件包管理器安装它。例如,在基于 Yum 的系统上$> yum search libaio # search for info $> yum install libaio # install library
或者,在基于 APT 的系统上
$> apt-cache search libaio # search for info $> apt-get install libaio1 # install library
Oracle Linux 8 / Red Hat 8 (EL8): 这些平台默认情况下不会安装文件
/lib64/libtinfo.so.5
,而该文件是 MySQL 客户端 bin/mysql 的必需文件,用于软件包mysql-VERSION-el7-x86_64.tar.gz
和mysql-VERSION-linux-glibc2.12-x86_64.tar.xz
。要解决此问题,请安装ncurses-compat-libs
软件包$> yum install ncurses-compat-libs
如果 Oracle(或您的 Linux 供应商)未提供特定于您发行版的 RPM 或
.deb
文件,则可以尝试使用通用二进制文件。在某些情况下,由于库不兼容或其他问题,这些二进制文件可能无法与您的 Linux 安装一起使用。在这种情况下,您可以尝试从源代码编译和安装 MySQL。有关更多信息和说明,请参阅 第 2.8 节,“从源代码安装 MySQL”。
要安装压缩 tar 文件二进制发行版,请将其解压缩到您选择的安装位置(通常为 /usr/local/mysql
)。这将创建以下表中所示的目录。
表 2.3 通用 Unix/Linux 二进制软件包的 MySQL 安装布局
目录 | 目录内容 |
---|---|
bin |
mysqld 服务器、客户端和实用程序 |
docs |
Info 格式的 MySQL 手册 |
man |
Unix 手册页 |
include |
包含(头)文件 |
lib |
库 |
share |
错误消息、字典和用于数据库安装的 SQL |
support-files |
各种支持文件 |
mysqld 二进制文件的调试版本称为 mysqld-debug。要从源代码发行版编译自己的 MySQL 调试版本,请使用适当的配置选项来启用调试支持。有关更多信息和说明,请参阅 第 2.8 节,“从源代码安装 MySQL”。
要安装和使用 MySQL 二进制发行版,命令序列如下所示
$> groupadd mysql
$> useradd -r -g mysql -s /bin/false mysql
$> cd /usr/local
$> tar xvf /path/to/mysql-VERSION-OS.tar.xz
$> ln -s full-path-to-mysql-VERSION-OS mysql
$> cd 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
此过程假定您对系统拥有 root
(管理员)访问权限。或者,您可以使用 sudo(Linux)或 pfexec(Solaris)命令为每个命令添加前缀。
mysql-files
目录提供了一个方便的位置,可以将其用作 secure_file_priv
系统变量的值,该变量将导入和导出操作限制到特定目录。请参阅 第 7.1.8 节,“服务器系统变量”。
以下是有关安装二进制发行版的更详细说明。
创建 mysql 用户和组
如果您的系统还没有用于运行mysqld的用户和组,您可能需要创建它们。以下命令将添加mysql
组和mysql
用户。您可能希望将用户和组命名为除mysql
以外的其他名称。如果是这样,请在以下说明中替换相应的名称。useradd和groupadd的语法在不同版本的 Unix/Linux 上可能略有不同,或者它们可能具有不同的名称,例如adduser和addgroup。
$> groupadd mysql
$> useradd -r -g mysql -s /bin/false mysql
由于该用户仅用于所有权目的,而不是登录目的,因此useradd命令使用-r
和-s /bin/false
选项来创建一个没有服务器主机登录权限的用户。如果您的useradd不支持这些选项,请省略这些选项。
获取并解压缩发行版
选择要解压缩发行版的目录,并将其更改为该目录。此处的示例在/usr/local
下解压缩发行版。因此,这些说明假设您有权在/usr/local
中创建文件和目录。如果该目录受保护,则必须以root
身份执行安装。
$> cd /usr/local
使用第 2.1.3 节“如何获取 MySQL”中的说明获取发行版文件。对于给定版本,所有平台的二进制发行版都是从相同的 MySQL 源发行版构建的。
解压缩发行版,这将创建安装目录。tar可以解压缩和解压缩发行版,如果它支持z
选项
$> tar xvf /path/to/mysql-VERSION-OS.tar.xz
该tar命令创建一个名为mysql-
的目录。VERSION
-OS
要从压缩的tar文件二进制发行版安装 MySQL,您的系统必须具有 GNU XZ Utils
来解压缩发行版,以及一个合理的tar来解压缩它。
已知 GNU tar有效。一些操作系统提供的标准tar无法解压缩 MySQL 发行版中的长文件名。您应该下载并安装 GNU tar,或者如果可用,使用预安装的 GNU tar 版本。通常,它可以作为gnutar、gtar或 GNU 或自由软件目录中的tar获得,例如/usr/sfw/bin
或/usr/local/bin
。GNU tar 可从http://www.gnu.org/software/tar/获取。
如果您的tar不支持xz
格式,则使用xz命令解压缩发行版,并使用tar解压缩它。将前面的tar命令替换为以下备用命令以解压缩和提取发行版
$> xz -dc /path/to/mysql-VERSION-OS.tar.xz | tar x
接下来,为tar创建的安装目录创建一个符号链接
$> ln -s full-path-to-mysql-VERSION-OS mysql
该ln
命令创建一个指向安装目录的符号链接。这使您可以更轻松地将其称为/usr/local/mysql
。为了避免在使用 MySQL 时始终键入客户端程序的路径名,您可以将/usr/local/mysql/bin
目录添加到PATH
变量中
$> export PATH=$PATH:/usr/local/mysql/bin
执行安装后设置
安装过程的其余部分涉及设置发行版所有权和访问权限、初始化数据目录、启动 MySQL 服务器以及设置配置文件。有关说明,请参阅第 2.9 节“安装后设置和测试”。