MySQL 8.0 参考手册  / 第 2 章安装和升级 MySQL  /  2.2 使用通用二进制文件在 Unix/Linux 上安装 MySQL

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

Oracle 提供了一组 MySQL 的二进制发行版。这些包括用于许多平台的压缩tar文件(具有 扩展名的文件)形式的通用二进制分发 .tar.gz,以及用于选定平台的特定于平台的包格式的二进制文件。

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

MySQL 压缩的tar文件二进制分发具有形式的名称 ,其中是一个数字(例如,),并 指示分发所针对的操作系统类型(例如, 或)。 mysql-VERSION-OS.tar.gzVERSION5.6.51OSpc-linux-i686winx64

警告
  • 如果您之前使用操作系统本机包管理系统(例如 Yum 或 APT)安装了 MySQL,则使用本机二进制文件安装时可能会遇到问题。确保您之前安装的 MySQL 已完全删除(使用您的包管理系统),并且任何其他文件(例如数据文件的旧版本)也已删除。您还应该检查配置文件(例如/etc/my.cnf/etc/mysql目录)并删除它们。

    有关将第三方包替换为官方 MySQL 包的信息,请参阅相关的 APT 指南Yum 指南

  • 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
  • SLES 11:从 MySQL 5.6.37 开始,Linux 通用 tarball 包格式为 EL6 而不是 EL5。作为副作用,MySQL 客户端 bin/mysql需要 libtinfo.so.5.

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

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

表 2.3 通用 Unix/Linux 二进制包的 MySQL 安装布局

目录 目录内容
bin,scripts mysqld服务器、客户端和实用程序
data 日志文件、数据库
docs Info 格式的 MySQL 手册
include 包含(头)文件
lib 图书馆
mysql-test 测试套件
man Unix 手册页
share 数据库安装的错误信息、字典和 SQL
sql-bench 基准
support-files 其他支持文件,包括示例配置文件

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

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

$> groupadd mysql
$> useradd -r -g mysql -s /bin/false mysql
$> cd /usr/local
$> tar zxvf /path/to/mysql-VERSION-OS.tar.gz
$> ln -s full-path-to-mysql-VERSION-OS mysql
$> cd mysql
$> scripts/mysql_install_db --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 帐户分配密码。为此,请使用第 2.10.4 节“保护初始 MySQL 帐户”中的说明。

mysql_install_db创建一个my.cnf在基本安装目录中命名的默认选项文件。该文件是根据分发包中包含的模板创建的,名为my-default.cnf. 有关详细信息,请参阅 第 5.1.2.2 节 “使用示例默认服务器配置文件”

前面关于安装二进制分发版的描述的更详细版本如下。

创建 mysql 用户和组

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

$> 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 zxvf /path/to/mysql-VERSION-OS.tar.gz

tar命令创建 一个名为 . mysql-VERSION-OS

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

GNU tar是众所周知的工作。一些操作系统提供的标准 tar无法解压 MySQL 发行版中的长文件名。您应该下载并安装 GNU tar,或者如果可用,使用 GNU tar 的预安装版本。通常这在 GNU 或自由软件目录中以gnutargtartar的形式提供,例如/usr/sfw/bin/usr/local/bin。GNU tar可从http://www.gnu.org/software/tar/获得。

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

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

接下来,创建指向由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.10 节 “安装后设置和测试”