• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 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校验和
    • 使用GnuPGGNU 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:初始屏幕

    安装Gpg4win


    接下来,添加MySQL Release Engineering证书。通过单击文件,在服务器上查找证书来执行此操作。在搜索框中输入“ Mysql Release Engineering”,然后按Search。

    图2.2 Kleopatra:在服务器向导中查找证书:查找证书

    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发布工程的更改信任级别

    Kleopatra


    接下来,验证下载的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.ascfile。

    图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.xzVERSION8.0.21OSpc-linux-i686winx64

    还有一个用于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 library
      
    • Oracle 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安装布局

    目录目录内容
    binmysqld服务器,客户端和实用程序
    docs信息格式的MySQL手册
    manUnix手册页
    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上,useraddgroupadd的语法可能略有不同,或者它们的名称也可能不同,例如 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的预装版本(如果可用)。通常,这可以作为gnutarGTAR,或焦油一个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服务器以及设置配置文件。有关说明,