[Linux][翻译]MySQL安装(通用二进制发行版方式)

小言

MySQL 是易上手的而且还很热门的,虽然它已经被 Oracle 揽入门下了,不过怎么说都没有 Oracle 的复杂,还记得大学期间学数据库使用的就是 Oracle ,安装起来各种坑各种跳。再者社区版开源,拥抱开源。废话说多了~

本文记录的是通过源码进行MySQL的安装以及配置。

环境

操作系统:CentOS 7.0

MySQL 版本:mysql-5.6.31-linux-glibc2.5-x86_64( MySQL 的 Linux 通用发行版)

概况

Oracle 提供了一系列 MySQL 的二进制发行版,其中包含适用大部分 Linux 平台的通用二进制发行版(以 .tar.gz 后缀的 tar 压缩文件形式给出),以及针对不同系统平台的独特发行版。

本章节主要讲述 MySQL 通用发行版的安装。其他针对不同系统平台的独特发行版的安装请查看对应的安装章节。如,针对 Windows 平台的安装,请查看 Section 2.3, “Installing MySQL on Microsoft Windows”

关于如何获取 MySQL ,请查看 Section 2.1.2, “How to Get MySQL”

MySQL 二进制发行版的 tar 压缩文件以mysql-VERSION-OS.tar.gz的形式进行命名,其中 VERSION 是一串数字(如5.6.32),OS 表明该发行版适用于哪种系统平台(如pc-linux-i686winx64)。

警告

如果你原本已经通过操作系统自身的软件包管理工具(如yumapt-get)安装过 MySQL ,那么应该就经历过安装过程遇到的问题。在进行安装之前,确保原本所安装的 MySQL 已经被完全移除(通过软件包管理工具),并且其他额外的文件,如旧版本的数据文件,也要全部移除。你应该检查相关的配置文件或目录,如/etc/my.cnf/etc/mysql,是否存在,若存在,则同样全部移除它们。

关于使用官方的 MySQL 软件包来替代第三方提供的软件包的信息,请查看相关的 Apt guideyum guide


警告

MySQL 需要依赖libaio包。如果本地没有安装此依赖包,则会导致数据目录初始化以及后续的服务启动都出现失败的情况。如果需要进行安装,则通过合适的软件管理工具即可,如在基于 Yum 的系统中:

1
2
3
shell> yum search libaio		#search for info

shell> yum install libaio #install library

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

1
2
3
shell> apt-cache search libaio		# search for info

shell> apt-get install libaio # install library

如果在安装执行过程遇到问题并需要提交bug问题,请查看 Section 1.6, “How to Report Bugs or Problems”

在 Unix 中,安装 tar 压缩文件形式的二进制发行版,需要解压到你所选择的安装目录下(通常为/usr/local/mysql)。随后将会看到如下表的文件目录:

目录 目录内容
bin, scripts mysqld服务,客户端程序及其他帮助程序
data 日志文件,数据库文件
docs MySQL 手册
man MySQL 手册(Unix命令行形式)
include MySQL 所需的头文件
lib MySQL 所需的库文件
share 其他各种支持文件,包括错误信息,示例配置文件,数据库初始化的 SQL 语句文件等
sql-bench Benchmarks

安装 MySQL 二进制发行版,所需的命令列表如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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> chown -R mysql .
shell> chgrp -R myaql .
shell> scripts/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql data
shell> bin/mysqld_safe --user=mysql &
# 其他可选命令
shell> cp support-files/mysql.server /etc/init.d/mysql.server

注意

上述命令的执行是假设你已经拥有root(系统管理员)权限。否则,你需要在每个命令前使用前缀获取管理员权限,Linux 下使用sudo,OpenSolaris 下使用pfexec


注意

上述命令的执行并不会设置 MySQL 帐号的密码。此操作请查看 Section 2.10.4, “Securing the Initial MySQL Accounts”

从 MySQL 5.6.8开始,mysql_install_db脚本会在安装目录下生成一个默认的配置文件my.cnf。这个文件的生成是基于发行版中一个my-default.cnf文件。关于配置文件的更多信息,请查看 Section 5.1.2.2, “Using a Sample Default Server Configuration File”

关于上述命令更多的详细描述,如下。

创建一个 mysql 的用户和群组

如果你的系统并没有mysql的用户和群组来运行mysqld服务,则需要创建一个这样的用户和群组。以下的命令的作用就是创建一个mysql用户和一个mysql群组。当然你也可以不命名为mysql,而是其他你所喜欢的,只需把命令中对应的名称替换了即可。useraddgroupadd语法会根据不同的 Unix 系统而有所不同,也许有些系统就是使用addusergroupadd语法。

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

注意

因为mysql用户只是用来制定目录归属,而不是用来登录系统,所以useradd命令使用了-r-s /bin/false选项来设置mysql用户没有登录系统的权限。如果你的useradd命令不支持这种选项,则可忽略了。

获得并解压发行版文件

选择好解压目录并进入到目录中。本示例中解压目录是在/usr/local下。所以以下的操作都假设你已经拥有在/usr/local下创建文件和目录的权限。如果所选择的目录是受保护的,那么以下的安装过程就需要使用root权限.

1
shell> cd /usr/local

关于如何获得发行版文件,请查看 Section 2.1.2, “How to Get MySQL”。对于所有的发布包,都是通过同一套 MySQL 源码发行版编译打包出来的。

解压发行版文件后就能在安装目录下看到对应的安装文件和文件夹。接着创建一条到安装目录的软链接。

1
2
shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz
shell> ln -s full-path-to-mysql-VERSION-OS mysql

tar命令会创建一个名为mysql-VERSION-OS的目录。ln命令创建一条到该目录的软链接,这样更容易更方便地操作目录/usr/local/mysql

执行后续安装初始化配置

剩下的安装命令包含设置安装目录的归属以及访问权限、初始化数据目录、启动 MySQL 服务、设置 MySQL 配置文件。更多信息请查看 Section 2.10, “Postintallation Setup and Testing”

(•̀ᴗ•́)و ̑̑

Share