使用通用二进制文件在Unix/Linux上安装MySQL
Oracle提供了一组MySQL的二进制发行版,这些包括用于许多平台的压缩tar文件(扩展名为.tar.xz
的文件)形式的通用二进制发行版,以及针对所选平台的特定于平台的包格式的二进制文件。
本节介绍在Unix/Linux平台上从压缩的tar文件二进制发行版安装MySQL,有关其他特定于平台的二进制包格式,请参阅本手册中其他特定于平台的部分。
MySQL压缩的tar文件二进制发行版具有mysql-VERSION-OS.tar.xz
形式的名称,其中VERSION是一个数字(例如,8.0.19),以及OS表示发新版所针对的操作系统的类型(例如,pc-linux-i686
或winx64
)。
还有用于Linux通用二进制发行版的MySQL压缩tar文件的“最小安装”版本,其名称形式为mysql-VERSION-OS-minimal.tar.xz
,最小安装发行版不包括调试二进制文件,并且剥离了debug标记,使其明显小于常规二进制发行版。如果你选择安装最小安装发行版,请记住在随后的说明中调整文件名格式的差异。
如果你以前使用操作系统原生程序包管理系统(如Yum或APT)安装了MySQL,则使用原生二进制文件安装时可能会遇到问题,确保你之前的MySQL安装已完全删除(使用你的包管理系统),并且还删除了任何其他文件,例如旧版本的数据文件。你还应该检查配置文件,例如
/etc/my.cnf
或/etc/mysql
目录并删除它们。有关使用官方MySQL软件包替换第三方软件包的信息,请参阅相关的APT指南或Yum指南。
MySQL依赖于
libaio
库,如果未在本地安装此库,则数据目录初始化和后续服务器启动步骤将失败,如有必要,请使用适当的包管理器进行安装,例如,在基于Yum的系统上:shell> yum search libaio # search for info shell> yum install libaio # install library
或者,在基于APT的系统上:
shell> apt-cache search libaio # search for info shell> apt-get install libaio1 # install library
要安装压缩的tar文件二进制发行版,请在你选择的安装位置解压缩它(通常是/usr/local/mysql
),这将创建下表中显示的目录。
目录 | 目录的内容 |
---|---|
bin | mysqld 服务器、客户端和实用程序 |
docs | 信息格式的MySQL手册 |
man | Unix手册页 |
include | 包含(header)文件 |
lib | 函数库 |
share | 用于数据库安装的错误消息、字典和SQL |
support-files | 其他支持文件 |
mysqld
二进制文件的调试版本可用作mysqld-debug
,要从源代码发行版中编译自己的MySQL调试版,请使用相应的配置选项来启用调试支持。
要安装和使用MySQL二进制发行版,命令序列如下所示:
shell> groupadd mysql
shell> useradd -r -g mysql -s /bin/false mysql
shell> cd /usr/local
shell> tar xvf /path/to/mysql-VERSION-OS.tar.xz
shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell> cd mysql
shell> mkdir mysql-files
shell> chown mysql:mysql mysql-files
shell> chmod 750 mysql-files
shell> bin/mysqld --initialize --user=mysql
shell> bin/mysql_ssl_rsa_setup
shell> bin/mysqld_safe --user=mysql &
# Next command is optional
shell> cp support-files/mysql.server /etc/init.d/mysql.server
此过程假定你具有对系统的
root
(管理员)访问权限,或者,你可以使用
sudo(Linux)或
pfexec(Solaris)命令为每个命令添加前缀。
mysql-files
目录提供了一个方便的位置,可用作secure_file_priv
系统变量的值,该变量将导入和导出操作限制到特定目录。
下面是用于安装二进制发行版的前面描述的更详细版本。
创建一个mysql用户和组
如果你的系统还没有用于运行mysqld
的用户和组,则可能需要创建它们,以下命令添加mysql
组和mysql
用户。你可能希望叫该用户和组为其他名称而不是mysql
,如果是这样,请在以下命令中替换相应的名称,useradd和groupadd的语法在不同版本的Unix/Linux上可能略有不同,或者它们可能有不同的名称,如adduser和addgroup。
shell> groupadd mysql
shell> useradd -r -g mysql -s /bin/false mysql
因为用户仅用于所有权目的,而不是登录目的,因此
useradd命令使用
-r
和
-s /bin/false
选项来创建对服务器主机没有登录权限的用户,如果你的
useradd不支持它们,请忽略这些选项。
获取并解压缩发行版
选择要在其下解压缩发行版的目录并将位置更改为该目录,这里的示例在/usr/local
下解压缩发行版,因此,这些命令假定你有权在/usr/local
中创建文件和目录,如果该目录受保护,则必须以root
用户身份执行安装。
shell> cd /usr/local
对于给定的版本,所有平台的二进制发行版都是从相同的MySQL源代码发行版构建的。
解压缩发行包,从而创建安装目录,如果它有z
选项支持,tar可以解压缩并解压缩发行版:
shell> tar xvf /path/to/mysql-VERSION-OS.tar.xz
tar命令创建一个名为mysql-VERSION-OS
的目录。
要从压缩的tar文件二进制发行版安装MySQL,你的系统必须具有GNU XZ Utils
来解压缩发行版并使用合理的tar来解压缩它。
在MySQL Server 8.0.12中,压缩算法从Gzip更改为XZ,并且通用二进制文件的文件扩展名从
.tar.gz
更改为
.tar.xz
。
已知GNU tar可以工作,某些操作系统提供的标准tar无法解析MySQL发行版中的长文件名,你应该下载并安装GNU tar,或者如果可用,请使用预安装的GNU tar版本。通常这可以作为gnutar、gtar或GNU或自由软件目录中的tar使用,例如/usr/sfw/bin
或/usr/local/bin
,GNU tar可从http://www.gnu.org/software/tar/获得。
如果你的tar不支持xz格式,那么使用xz命令解压缩发行版和tar以解压缩它,使用以下替代命令替换前面的tar命令以解压缩并提取发行版:
shell> xz -dc /path/to/mysql-VERSION-OS.tar.xz | tar x
接下来,创建一个指向tar创建的安装目录的符号链接:
shell> ln -s full-path-to-mysql-VERSION-OS mysql
ln
命令创建指向安装目录的符号链接,这使你可以更容易地将其引用为/usr/local/mysql
,为了避免在使用MySQL时必须始终键入客户端程序的路径名,可以将/usr/local/mysql/bin
目录添加到PATH
变量中:
shell> export PATH=$PATH:/usr/local/mysql/bin
执行安装后设置
安装过程的其余部分涉及设置发行版所有权和访问权限、初始化数据目录、启动MySQL服务器以及设置配置文件。