小言
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-i686
或winx64
)。
警告
如果你原本已经通过操作系统自身的软件包管理工具(如
yum
或apt-get
)安装过 MySQL ,那么应该就经历过安装过程遇到的问题。在进行安装之前,确保原本所安装的 MySQL 已经被完全移除(通过软件包管理工具),并且其他额外的文件,如旧版本的数据文件,也要全部移除。你应该检查相关的配置文件或目录,如/etc/my.cnf
或/etc/mysql
,是否存在,若存在,则同样全部移除它们。关于使用官方的 MySQL 软件包来替代第三方提供的软件包的信息,请查看相关的 Apt guide 或 yum 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 | shell> groupadd mysql |
注意
上述命令的执行是假设你已经拥有
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
,而是其他你所喜欢的,只需把命令中对应的名称替换了即可。useradd
和groupadd
语法会根据不同的 Unix 系统而有所不同,也许有些系统就是使用adduser
和groupadd
语法。
1 | shell> groupadd 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 | shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz |
tar
命令会创建一个名为mysql-VERSION-OS
的目录。ln
命令创建一条到该目录的软链接,这样更容易更方便地操作目录/usr/local/mysql
执行后续安装初始化配置
剩下的安装命令包含设置安装目录的归属以及访问权限、初始化数据目录、启动 MySQL 服务、设置 MySQL 配置文件。更多信息请查看 Section 2.10, “Postintallation Setup and Testing”。
(•̀ᴗ•́)و ̑̑