MySQL8安装通用的安装方式
要安装哪个MySQL版本和发行版
MySQL可在许多操作系统和平台上使用。有关正式支持的平台的信息,请参见MySQL网站上的https://www.mysql.com/support/supportedplatforms/database.html。
准备安装MySQL时,请确定要使用的版本和发行格式(二进制或源格式)。
首先,决定要安装开发版本还是通用可用性(GA)版本。开发版本具有最新功能,但不建议用于生产环境。GA版本,也称为生产版本或稳定版本,旨在用于生产用途。我们建议使用最新的GA版本。
MySQL 8.0中的命名方案使用的发行版名称由三个数字和一个可选的后缀组成(例如 mysql-8.0.1-dmr)。版本名称中的数字解释如下:
- 第一个数字(8)是主版本号。
- 第二个数字(0)是次要版本号。总而言之,主要和次要数字构成发行版本号。序列号描述了稳定的功能集。
- 第三个数字(1)是发行系列中的版本号。对于每个新的错误修正版本,此值均递增。在大多数情况下,系列中的最新版本是最佳选择。
版本名称还可以包含一个后缀,以指示版本的稳定性。一系列发行中的发布会通过一组后缀来指示稳定性水平如何提高。可能的后缀是:
- dmr指示开发里程碑版本(DMR)。MySQL开发使用里程碑模型,其中每个里程碑都引入了一小部分经过全面测试的功能。从一个里程碑到下一个里程碑,基于尝试这些正常发布的社区成员提供的反馈,功能界面可能会更改,甚至功能可能会被删除。里程碑版本中的功能可能被视为具有预生产质量。
- rc表示发布候选(RC)。通过MySQL的所有内部测试后,候选发布版本被认为是稳定的。RC版本中可能仍会引入新功能,但是重点将转移到修复错误上,以稳定本系列中较早引入的功能。
- 没有后缀表示具有一般可用性(GA)或正式发布。GA版本稳定,已成功通过了较早的发布阶段,并且被认为是可靠的,没有严重的错误,并且适合在生产系统中使用。
系列开发工作从DMR版本开始,随后是RC版本,最后达到GA状态版本。
选择要安装的MySQL版本后,请决定要为您的操作系统安装哪种分发格式。对于大多数使用情况,二进制分发是正确的选择。二进制发行版可用于许多平台,以本机格式提供,例如Linux的RPM软件包或macOS的DMG软件包。发行版也以更通用的格式提供,例如Zip存档或压缩的tar文件。在Windows上,可以使用MySQL Installer安装二进制发行版。
在某些情况下,最好从源代码发行版安装MySQL:
- 您想在某个明确的位置安装MySQL。标准二进制发行版可以在任何安装位置运行,但是您可能需要更大的灵活性才能将MySQL组件放置在所需的位置。
您想使用标准二进制发行版中可能未包含的功能来配置mysqld。这是用于确保功能可用性的最常见的其他选项的列表:
-DWITH_LIBWRAP=1
用于TCP包装程序支持。-DWITH_ZLIB={system|bundled}
对于依赖压缩的功能-DWITH_DEBUG=1
用于调试支持
有关更多信息,请参见“ MySQL源配置选项”。
- 您要配置mysqld而不使用标准二进制发行版中包含的某些功能。
- 您想阅读或修改组成MySQL的C和C + +代码。为此,获取源分发。
- 源代码发行版比二进制发行版包含更多的测试和示例。
如何获取MySQL
在https://dev.mysql.com/downloads/上参见我们的下载页面,以获取有关当前版本的MySQL的信息以及下载说明。有关MySQL下载镜像站点的完整最新列表,请参见 https://dev.mysql.com/downloads/mirrors.html。您还可以在那里找到有关成为MySQL镜像站点以及如何报告错误或过时的镜像的信息。
对于使用Yum作为软件包管理系统的基于RPM的Linux平台,可以使用MySQL Yum存储库安装 MySQL。有关详细信息,请参见“使用MySQL Yum存储库在Linux上安装MySQL”。
对于基于Debian的Linux平台,可以使用MySQL APT Repository安装 MySQL。有关详细信息,请参见“使用MySQL APT存储库在Linux上安装MySQL”。
对于SUSE Linux Enterprise Server(SLES)平台,可以使用MySQL SLES存储库安装 MySQL。有关详细信息,请参见“使用MySQL SLES存储库在Linux上安装MySQL”。
要获取最新的开发源,请参见“使用开发源树安装MySQL”。
使用MD5校验和或GnuPG验证程序包完整性
在下载适合您需要的MySQL软件包之后,并在尝试安装它之前,请确保它完好无损且未被篡改。完整性检查有以下三种方法:
- MD5校验和
- 使用
GnuPG
GNU Privacy Guard的密码签名 - 对于RPM软件包,内置的RPM完整性验证机制
以下各节介绍如何使用这些方法。
如果您发现MD5校验和或GPG签名不匹配,请首先尝试再下载一次相应的软件包,也许是从另一个镜像站点下载。
验证MD5校验和
下载完MySQL程序包后,应确保其MD5校验和与MySQL下载页面上提供的校验和匹配。每个程序包都有一个单独的校验和,您可以针对下载的程序包进行校验。每个MySQL产品的下载页面上列出了正确的MD5校验和,您会将其与下载的文件(产品)的MD5校验和进行比较。
每个操作系统和设置都提供了自己的工具版本,用于检查MD5校验和。通常,该命令名为md5sum,或者可能命名为md5,并且某些操作系统根本不提供该命令。在Linux上,它是GNU Text Utilities软件包的一部分,该软件包可用于多种平台。您也可以从http://www.gnu.org/software/textutils/下载源代码。如果已安装OpenSSL,则可以改用openssl md5package_name
命令。可从以下位置获得md5命令行实用程序的 Windows实现:http://www.fourmilab.ch/md5/。winMd5Sum是可从http://www.nullriver.com/index/products/winmd5sum获得的图形MD5检查工具。我们的Microsoft Windows示例将假定名称为md5.exe。
Linux和Microsoft Windows示例:
shell>md5sum mysql-standard-8.0.21-linux-i686.tar.gz aaab65abbec64d5e907dcd41b8699945 mysql-standard-8.0.21-linux-i686.tar.gz
shell>md5.exe mysql-installer-community-8.0.21.msi aaab65abbec64d5e907dcd41b8699945 mysql-installer-community-8.0.21.msi
您应验证所产生的校验和(十六进制数字的字符串)与相应软件包正下方的下载页面上显示的校验和相符。
注意确保验证的校验和存档文件(例如.zip
,.tar.gz
或.msi
文件)中包含存档内的文件,而不是。换句话说,请在提取文件内容之前验证文件。
使用GnuPG进行签名检查
验证包装完整性和真实性的另一种方法是使用加密签名。这比使用MD5校验和更可靠,但是需要更多工作。
我们使用GnuPG(GNU Privacy Guard)签署MySQL可下载的软件包。GnuPG是Phil Zimmermann 着名的Pretty Good Privacy(PGP)的开源替代品。大多数Linux发行版都默认安装了GnuPG。否则,请访问http://www.gnupg.org/以获取有关GnuPG以及如何获取和安装它的更多信息。
要验证特定程序包的签名,您首先需要获取我们的公共GPG构建密钥的副本,您可以从http://pgp.mit.edu/下载。您要获取的密钥名为mysql-build@oss.oracle.com
。
要将构建密钥导入您的个人公共GPG密钥环,请使用gpg --import。例如,如果已将密钥保存在名为的文件中mysql_pubkey.asc
,则导入命令如下所示:
shell>gpg --import mysql_pubkey. sc gpg: key 5072E1F5: public key "MySQL Release Engineering<mysql-build@oss.oracle.com>" imported gpg: Total number processed: 1 gpg: imported: 1 gpg: no ultimately trusted keys found
您还可以使用公共密钥ID从公共密钥服务器下载密钥5072E1F5
:
shell>gpg --recv-keys 5072E1F5 gpg: requesting key 5072E1F5 from hkp server keys.gnupg.net gpg: key 5072E1F5: "MySQL Release Engineering <mysql-build@oss.oracle.com>" 1 new user ID gpg: key 5072E1F5: "MySQL Release Engineering <mysql-build@oss.oracle.com>" 53 new signatures gpg: no ultimately trusted keys found gpg: Total number processed: 1 gpg: new user IDs: 1 gpg: new signatures: 53
如果要将密钥导入到RPM配置中以验证RPM安装软件包,则应该能够直接导入密钥:
shell>rpm --import mysql_pubkey. sc
如果您遇到问题或需要RPM特定信息,请参见“使用RPM进行签名检查”。
下载并导入公共构建密钥后,请下载所需的MySQL软件包和相应的签名,这些信息也可从下载页面获得。签名文件与带有.asc
扩展名的分发文件具有相同的名称,如下表中的示例所示。
表2.1源文件的MySQL软件包和签名文件
文件类型 | 文件名 |
---|---|
分发文件 | mysql-standard-8.0.21-linux-i686.tar.gz |
签名文件 | mysql-standard-8.0.21-linux-i686.tar.gz.asc |
确保两个文件都存储在同一目录中,然后运行以下命令来验证分发文件的签名:
shell>gpg --verify package_name. sc
如果下载的软件包有效,您将看到类似于以下内容的“良好签名”:
shell>gpg --verify mysql-standard-8.0.21-linux-i686.tar.gz. sc gpg: Signature made Tue 01 Feb 2011 02:38:30 AM CST using DSA key ID 5072E1F5 gpg: Good signature from "MySQL Release Engineering <mysql-build@oss.oracle.com>"
该Good signature
消息表明文件签名与我们网站上列出的签名相比是有效的。但是您可能还会看到警告,例如:
shell>gpg --verify mysql-standard-8.0.21-linux-i686.tar.gz. sc gpg: Signature made Wed 23 Jan 2013 02:25:45 AM PST using DSA key ID 5072E1F5 gpg: checking the trustdb gpg: no ultimately trusted keys found gpg: Good signature from "MySQL Release Engineering <mysql-build@oss.oracle.com>" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: A4A9 4068 76FC BD3C 4567 70C8 8C71 8D3B 5072 E1F5
这是正常的,因为它们取决于您的设置和配置。以下是这些警告的说明:
- gpg:未找到最终受信任的密钥:这意味着您或您的信任网络未将特定密钥“最终信任”,这对于验证文件签名是可以的。
- 警告:此密钥未经过可信签名的认证!没有迹象表明签名属于所有者。:这表示您对自己拥有我们真正的公共密钥的信任程度。这是个人决定。理想情况下,MySQL开发人员会亲自将密钥交给您,但更常见的是,您下载了它。下载被篡改了吗?可能不是,但是这个决定取决于您。建立信任网是一种信任它们的方法。
有关如何使用公钥的更多信息,请参见GPG文档。
使用Windows版Gpg4win进行签名检查
在第2.1.3.2,“签名检查使用GnuPG”部分介绍如何验证使用MySQL的GPG下载。该指南也适用于Microsoft Windows,但是另一个选择是使用GUI工具,例如Gpg4win。您可以使用其他工具,但我们的示例基于Gpg4win,并使用其捆绑的Kleopatr
GUI。
下载并安装Gpg4win,然后加载Kleopatra。该对话框应类似于:
图2.1 Kleopatra:初始屏幕
接下来,添加MySQL Release Engineering证书。通过单击文件,在服务器上查找证书来执行此操作。在搜索框中输入“ Mysql Release Engineering”,然后按Search。
图2.2 Kleopatra:在服务器向导中查找证书:查找证书
显示标题为“ Find”的搜索输入字段,其中输入了“ mysql release engineering”。一个结果包含以下值:名称= MySQL发布工程,电子邮件= mysql-build@oss.oracle.com,有效期自= 2003-02-03,有效期至=“”,详细信息= OpenPGP,指纹= 5072E1F5 ,并且Key-ID = 5072E1F5。可用的操作按钮为:搜索,全选,取消全选,详细信息,导入和关闭。
选择“ MySQL Release Engineering”证书。指纹和密钥ID必须为“ 5072E1F5”,或选择“详细信息...”以确认证书有效。现在,点击导入导入它。将显示一个导入对话框,选择 Okay,此证书现在将列在Imported Certificates选项卡下。
接下来,为我们的证书配置信任级别。选择我们的证书,然后从主菜单中选择证书,更改所有者信任......。我们建议选择“我认为支票对我们的证书非常准确”,否则您可能无法验证我们的签名。选择“我相信检查非常准确”以启用“完全信任”,然后按OK。
图2.3 Kleopatra:MySQL发布工程的更改信任级别
接下来,验证下载的MySQL软件包文件。这需要用于打包文件和签名的文件。签名文件必须与打包文件具有相同的名称,但具有.asc
扩展名,如下表中的示例所示。签名链接到每个MySQL产品的下载页面上。您必须.asc
使用此签名创建文件。
表2.2适用于Microsoft Windows的MySQL Installer的MySQL软件包和签名文件
文件类型 | 文件名 |
---|---|
分发文件 | mysql-installer-community-8.0.21.msi |
签名文件 | mysql-installer-community-8.0.21.msi.asc |
确保两个文件都存储在同一目录中,然后运行以下命令来验证分发文件的签名。可以将签名(.asc
)文件拖放到Kleopatra中,或者从File,Decrypt / Verify Files ...中加载对话框,然后选择.msi
或.asc
file。
图2.4 Kleopatra:“解密和验证文件”对话框

单击解密/验证以检查文件。两种最常见的结果如下所示,尽管黄色警告看起来有问题,但以下内容表示文件检查成功通过。您现在可以运行此安装程序。
图2.5 Kleopatra:“解密和验证结果”对话框:所有操作已完成

看到红色的“签名错误”错误表示文件无效。如果看到此错误,请不要执行MSI文件。
图2.6 Kleopatra:“解密和验证结果”对话框:错误

在第2.1.3.2,“签名检查使用GnuPG”部分解释了为什么你可能不会看到一个绿色的Good signature
结果。
使用RPM进行签名检查
对于RPM软件包,没有单独的签名。RPM软件包具有内置的GPG签名和MD5校验和。您可以通过运行以下命令来验证软件包:
shell>rpm --checksig package_name.rpm
例:
shell>注意rpm --checksig MySQL-server-8.0.21-0.linux_glibc2.5.i386.rpm MySQL-server-8.0.21-0.linux_glibc2.5.i386.rpm: md5 gpg OK
如果您使用的是RPM 4.1,但它抱怨(GPG)NOT OK(MISSING KEYS: GPG#5072e1f5)
,即使您已将MySQL公共构建密钥导入到您自己的GPG密钥环中,也需要首先将密钥导入RPM密钥环。RPM 4.1不再使用您的个人GPG密钥环(或GPG本身)。而是,RPM维护单独的密钥环,因为它是系统范围的应用程序,而用户的GPG公共密钥环是特定于用户的文件。要将MySQL公共密钥导入RPM密钥环,请先获取密钥,然后使用rpm --import导入密钥。例如:
shell>gpg --export - 5072e1f5 > 5072e1f5. sc shell>rpm --import 5072e1f5. sc
另外,rpm也支持直接从URL加载密钥,您可以使用以下手册页:
shell>rpm --import https://dev.mysql.com/doc/refman/8.0/en/checking-gpg-signature.html
如果需要获取MySQL公共密钥,请参见“使用GnuPG进行签名检查”。
安装布局
对于不同的安装类型(例如,本机软件包,二进制tarball和源tarball),安装布局有所不同,在管理不同的系统或使用不同的安装源时,这可能导致混乱。各个布局在相应的安装类型或平台章节中给出,如下所述。请注意,来自Oracle以外的供应商的安装布局可能与这些布局不同。
- “ Microsoft Windows上的MySQL安装布局”
- “用于源代码安装的MySQL布局”
- 表2.3,“通用Unix / Linux二进制软件包的MySQL安装布局”
- 表2.11,“来自MySQL开发人员专区的Linux RPM软件包的MySQL安装布局”
- 表2.6,“ macOS上的MySQL安装布局”
特定于编译器的构建特征
在某些情况下,用于构建MySQL的编译器会影响可用的功能。本节中的注释适用于Oracle Corporation提供的二进制发行版,或者您从源代码进行编译。
icc(Intel C + +编译器)构建
使用icc构建的服务器具有以下特征:
- 不包括SSL支持。
使用通用二进制文件在Unix / Linux上安装MySQL
Oracle提供了一组MySQL二进制发行版。这些文件包括用于多个平台的压缩tar文件(带有.tar.xz
扩展名的文件)形式的通用二进制发行版,以及用于所选平台的特定于平台的软件包格式的二进制文件。
本节介绍了如何从Unix / Linux平台上的压缩tar文件二进制发行版中安装MySQL 。有关其他特定于平台的二进制软件包格式,请参见本手册中的其他特定于平台的部分。例如,对于Windows发行版,请参见“在Microsoft Windows上安装MySQL”。有关如何获取不同分发格式的MySQL的信息,
MySQL压缩的tar文件二进制发行版的名称形式为,其中是一个数字(例如),并指示发行版所针对的操作系统类型(例如或)。mysql-VERSION-OS.tar.xz
VERSION
8.0.21
OS
pc-linux-i686
winx64
还有一个用于Linux通用二进制发行版的MySQL压缩tar文件的“最小安装”版本,其名称为形式。最小安装分发不包括调试二进制文件,并且去除了调试符号,从而使其大大小于常规二进制分发文件。如果选择安装最小安装发行版,请记住按照以下说明调整文件名格式的差异。mysql-VERSION-OS-minimal.tar.xz
如果以前使用操作系统本机软件包管理系统(例如Yum或APT)安装了MySQL,则在使用本机二进制文件安装时可能会遇到问题。确保以前的MySQL安装已完全删除(使用程序包管理系统),并且所有其他文件(例如数据文件的旧版本)也已删除。您还应该检查配置文件(例如
/etc/my.cnf
或/etc/mysql
目录)并删除它们。有关用正式的MySQL软件包替换第三方软件包的信息,请参阅相关的 APT指南或Yum指南。
MySQL对
libaio
库有依赖性。如果未在本地安装该库,则数据目录初始化和随后的服务器启动步骤将失败。如有必要,请使用适当的程序包管理器进行安装。例如,在基于百胜的系统上:shell>
yum search libaio # search for info shell>yum install libaio # install library或者,在基于APT的系统上:
shell>
pt-cache search libaio # search for info shell>pt-get install libaio1 # install libraryOracle Linux 8 / Red Hat 8 (EL8):这些平台默认情况下不安装文件
/lib64/libtinfo.so.5
,这是MySQL客户端 bin / mysql所需的软件包mysql-VERSION-el7-x86_64.tar.gz
和的文件mysql-VERSION-linux-glibc2.12-x86_64.tar.xz
。要变通解决此问题,安装ncurses-compat-libs
程序包:shell>
yum install ncurses-compat-libs
要安装压缩的tar文件二进制发行版,请将其解压缩到您选择的安装位置(通常为/usr/local/mysql
)。这将创建下表中显示的目录。
表2.3通用Unix / Linux二进制软件包的MySQL安装布局
目录 | 目录内容 |
---|---|
bin | mysqld服务器,客户端和实用程序 |
docs | 信息格式的MySQL手册 |
man | Unix手册页 |
include | 包含(头)文件 |
lib | 图书馆 |
share | 错误消息,字典和用于数据库安装的SQL |
support-files | 杂项支持文件 |
mysqld二进制文件的调试版本可以作为mysqld-debug获得。要从源代码分发中编译自己的MySQL调试版本,请使用适当的配置选项启用调试支持。请参见“从源代码安装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
。如果是这样,请在以下说明中替换适当的名称。在不同版本的Unix / Linux上,useradd和groupadd的语法可能略有不同,或者它们的名称也可能不同,例如 dduser和 ddgroup。
shell>注意groupadd mysql shell>useradd -r -g mysql -s /bin/false mysql
因为仅出于所有权目的而不是登录目的才需要该用户,所以useradd命令使用-r
和-s /bin/false
选项来创建对服务器主机没有登录权限的用户。如果您的用户添加不支持这些选项,请忽略这些选项。
获取并解压缩发行版
选择要在其中解压缩发行版并将目录更改到其中的目录。此处的示例解压下的分发包/usr/local
。因此,这些说明假定您有权在中创建文件和目录/usr/local
。如果该目录受保护,则必须按进行安装root
。
shell>cd /usr/local
使用“如何获取MySQL”中的说明获取分发文件。对于给定的发行版,所有平台的二进制发行版都是从相同的MySQL源发行版构建的。
解压缩发行版,创建安装目录。如果tar具有z
选件支持,则可以解压缩和解压缩发行版:
shell>tar xvf /path/to/mysql-VERSION-OS.tar.xz
该焦油命令创建的目录。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或免费软件的目录中,如/usr/sfw/bin
或/usr/local/bin
。可从http://www.gnu.org/software/tar/获得GNU 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服务器以及设置配置文件。有关说明,