MySQL 5.7 安全部署指南  /  第 4 章安装 MySQL 二进制包

第 4 章安装 MySQL 二进制包

本节介绍安装先决条件、创建 mysql用户和组以及解压分发包。

安装先决条件

  • 安装必须作为操作系统 root用户执行,因为安装过程涉及创建用户、组、目录以及分配所有权和权限。安装的 MySQL 二进制文件归操作系统 root用户所有。

    笔记

    除非另有说明,否则本指南中的过程是以操作系统root 用户身份执行的。

  • MySQL 依赖于该libaio 库。如果未在本地安装此库,则数据目录初始化和后续服务器启动步骤将失败。如有必要,请使用适当的包管理器安装它。例如,在基于 Yum 的系统上:

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

创建 mysql 用户和组

mysql用户拥有 MySQL 数据目录 。它还用于运行mysqld服务器进程,如 systemd mysqld.service文件中所定义(请参阅 使用 systemd 启动服务器)。用户对 MySQL 数据目录中的任何内容 mysql具有读写权限。它没有登录 MySQL 的能力。它仅出于所有权目的而存在。

mysql组是数据库管理员组。该组中的用户对 MySQL 数据目录中的任何内容具有读写权限,并对任何打包的 MySQL 二进制文件具有执行权限。

此命令添加mysql组。

$> groupadd -g 27 -o -r mysql

groupadd-g 27-o 选项分配一个非唯一的组 ID (GID)。该 -r选项使该组成为系统组。

此命令添加mysql用户:

$> useradd -M -N -g mysql -o -r -d datadir -s /bin/false -c "MySQL Server" -u 27 mysql
  • -M选项可防止创建用户主目录。

  • -N选项指示应将用户添加到该 -g选项指定的组中。

  • 和选项分配一个非唯一的用户 ID (UID) -o-u 27

  • -r-s /bin/false 选项创建一个没有服务器主机登录权限的用户 。仅出于所有权目的而mysql不是登录目的需要用户。

  • -d选项指定用户登录目录,该目录设置为预期的 MySQL 数据目录路径。此部署中的预期数据目录路径是 /usr/local/mysql/data.

  • -c选项指定描述帐户的注释。

打开分发包

从经过验证的MySQL Linux Generic Binary下载包中提取二进制文件:

  1. 将位置更改为要在其下解压缩 MySQL 发行版的目录。在此部署中,分发由rootunder 解包/usr/local

    $> cd /usr/local
  2. 解压 MySQL 发行版,这会创建安装目录。任何现代的tar 程序都可以使用以下命令解压缩和解压缩分发版:

    $> tar xvf /path/to/mysql-advanced-5.7.xx-linux-glibc2.12-x86_64.tar.gz

    tar命令创建 一个名为 . 在本例中,目录名为 ,其中是最新版本。 mysql-VERSION-OSmysql-advanced-5.7.xx-linux-glibc2.12-x86_64xx

  3. 创建到由tar创建的安装目录的相对符号链接:

    $> cd /usr/local
    $> ln -s mysql-advanced-5.7.xx-linux-glibc2.12-x86_64 mysql

    ln命令创建一个指向安装目录的符号链接。这使您可以更轻松地将其称为/usr/local/mysql.

笔记

为避免在使用 MySQL 时键入客户端程序的路径名,请将/usr/local/mysql/bin 目录添加到您的PATH变量中:

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

解压缩发行版会创建下表中显示的目录。这些目录位于 MySQL 安装目录中,即 /usr/local/mysql

表 4.1 MySQL Linux 通用二进制分发目录

目录 目录内容
bin mysqld服务器;客户端和实用程序
docs Info 格式的 MySQL 手册
man Unix 手册页
include 包含(头)文件
lib 图书馆
share 杂项文件,包括错误消息、示例配置文件、用于数据库安装的 SQL
support-files 与管理多个服务器进程、自动启动配置和日志轮换相关的其他支持文件。

MySQL 安装目录中还包含 README.txtLICENSE.mysql文件。没有数据目录。它是稍后在初始化数据目录时创建的。