文章目录
MySQL 5.7 参考手册(中文版)翻译自官方文档 MySQL 5.7 Reference Manual
使用通用二进制文件在 Unix/Linux 上安装 MySQL
二进制文件 binary package 介绍
Oracle 提供了一系列的 MySQL 二进制包,其中包括使用tar 文件形式的通用二进制包(扩展名为.tar.gz的文件),以及针对特定平台的二进制包。
本节介绍在 Unix/Linux 平台上,使用压缩得 tar 二进制包来安装 MySQL。关于侧重于 MySQL 安全特性的 Linux 通用二进制包的安装说明,请参阅《安全部署指南》。有关其他特定平台的二进制包格式,请参阅本手册中关于其他特定平台的章节。例如,对于Windows发行版,请参阅 在 Microsoft Windows 上安装 MySQL 。关于如何获取不同发行格式的MySQL,请参见 如何获取 MySQL。
MySQL 的压缩的 tar 二进制包的名称格式为 mysql-VERSION-OS.tar.gz
,其中 version
是一个代表版本的数字(例如,5.7.36
), OS
表明了发行包指定的操作系统的类型(例如,pc-linux-i686
或 winx64
)。
移除已安装 MySQL
如果你先前已经使用了操作系统自带的安装包管理工具(例如 Yum 或 APT)安装了 MySQL,那么再使用二进制文件安装时可能会遇到问题。需确保原先安装的 MySQL 被完全移除,包括所有的文件(例如旧版本的数据文件)都被删除。另外,配置文件(例如 /etc/my.cnf
和 /etc/mysql
)也需要被删除。
关于如何使用 MySQL 官方安装包,替换第三方安装包,可以参考 APT guide 或 Yum guide。
安装 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
对于 MySQL 5.7.19 以及更高版本:
通用 LInux 构建已经支持了非统一内存访问(NUMA),这个功能依赖 libnuma
库。如果操作系统没有安装这个库,那么就需要使用系统包管理器搜索安装(相关示例命令,参照上一章)。
自 MySQL 5.7.19 版本往后,Linux 通用的 tar 包格式从 EL5 变为了 EL6。相应的,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
。
安装 MySQL
选择一个本地的安装位置(一般是 /usr/local/mysql
),打开要安装的 tar 二进制压缩文件。
MySQL 安装后的文件目录和介绍如下所示:
- bin
可执行文件,mysqld 服务、客户端和公共程序 - docs
MySQL 手册 - man
Unix 手册 - include
包含头文件 - lib
库文件 - share
错误信息、字典和SQL - support-files
其他支持文件
mysqld-debug 是 mysqld 的 debug 版本。用源码包编译自己的 debug 版本,设置适当的配置项来启用 debug 支持。详细可查看 Installing MySQL from Source。
安装 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
$> mkdir mysql-files
$> chown mysql:mysql mysql-files
$> chmod 750 mysql-files
$> bin/mysqld --initialize --user=mysql
$> bin/mysql_ssl_rsa_setup
$> bin/mysqld_safe --user=mysql &
# Next command is optional
$> cp support-files/mysql.server /etc/init.d/mysql.server
Note
安装命令使用的是系统的 root 权限。也可以在每个命令前缀 sudo (Linux) 或 pfexec (Solaris) 命令。
目录 mysql-files
提供了一个方便的位置,可以作为 secure_file_priv
系统变量的值。用来将导入和到处操作限制到特定目录。可查阅 Server System Variables。
下面是前面安装二进制包的更详细描述。
创建 MySQL 用户和组
执行下面的命令,来创建一个用户和组,专门用来运行 mysqld。如果用户和组的名字不想叫 mysql
,可以在命令中替换成其他的名称。useradd
和 groupadd
的语法在不同版本的 Unix/Linux 中略有不同,可能是 adduser
和 addgroup
。
$> groupadd mysql
$> useradd -r -g mysql -s /bin/false mysql
Note
由于用户仅用于所有权目的,而非登录目的,useradd
命令 使用-r
和-s /bin/false
选项创建一个没有登录服务器主机权限的用户。如果 你的useradd
命令不支持,则可以省略这个选项。
下载并解压缩安装包
选定一个目录用来解压缩安装包,示例中使用的目录是 /usr/local
:
$> cd /usr/local
- 如果你没有
/usr/local
目录的创建目录和文件的权限,需要使用root
权限安装。- 获取安装包文件,可以参阅 How to Get MySQL。固定的版本下,所有平台的二进制安装包都是从相同的 MySQL 源码文件构建出来的。
将获取到的安装包放入当前目录,然后解压缩:
$> tar zxvf /path/to/mysql-VERSION-OS.tar.gz
使用二进制文件安装 MySQL,需要先使用
gunzip
解压缩,然后使用 tar 打开。
如果你的 tar 程序支持 z 命令,那么就可以使用它完成全部动作。
某些操作系统提供的标准tar工具无法打开 MySQL 安装包的长文件名,那么你需要使用 GNU tar工具(如果系统没有预装了此工具,可以自行下载安装)。通常它以 gnutar、gtar 或 GNU 或自由软件目录(例如/usr/ swf /bin或/usr/local/bin)中的tar格式提供。GNU tar 可以从 http://www.gnu.org/software/tar/ 获取。
执行命令后会得到一个 mysql-VERSION-OS
目录。
如果你的 tar 没有 z 选项支持,就使用 gunzip 解压然后使用 tar 打开。将前面的 tar 命令替换为下面的替代命令:
gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf -
接下来,创建一个指向安装目录的软链接(symbolic link) :
$> ln -s full-path-to-mysql-VERSION-OS mysql
添加 /usr/local/mysql/bin
路径到 PATH
变量中,避免在使用 MySQL 时,必须输入客户端的路径名。
$> export PATH=$PATH:/usr/local/mysql/bin
Perform Postinstallation Setup
安装过程的其余部分,包括设置安装包的所有权和访问权限、初始化数据目录、启动 MySQL 服务和设置配置文件。请查阅 Postinstallation Setup and Testing。