MySQL8-中文参考-二-

MySQL8 中文参考(二)

原文:docs.oracle.com/javase/tutorial/reallybigindex.html

2.1.5 安装布局

原文:dev.mysql.com/doc/refman/8.0/en/installation-layouts.html

不同安装类型(例如,本机软件包、二进制 tarballs 和源 tarballs)的安装布局不同,这可能会在管理不同系统或使用不同安装源时导致混淆。各个布局在相应的安装类型或平台章节中给出,如下所述。请注意,除 Oracle 以外的供应商提供的安装布局可能与这些布局不同。

  • 章节 2.3.1, “Microsoft Windows 上的 MySQL 安装布局”

  • 章节 2.8.3, “源码安装的 MySQL 布局”

  • 表 2.3, “通用 Unix/Linux 二进制包的 MySQL 安装布局”

  • 表 2.12, “MySQL Developer Zone 中 Linux RPM 软件包的 MySQL 安装布局”

  • 表 2.7, “macOS 上的 MySQL 安装布局”

2.1.6 编译器特定的构建特性

原文:dev.mysql.com/doc/refman/8.0/en/compiler-characteristics.html

在某些情况下,用于构建 MySQL 的编译器会影响可用的功能。本节中的注释适用于由 Oracle 公司提供的二进制发行版,或者您从源代码自行编译的情况。

****icc(英特尔 C++ 编译器)构建

使用icc构建的服务器具有以下特点:

  • 不包括 SSL 支持。

2.2 在 Unix/Linux 上使用通用二进制文件安装 MySQL

译文:dev.mysql.com/doc/refman/8.0/en/binary-installation.html

Oracle 提供了一组 MySQL 的二进制发行版。这些包括各种平台的通用二进制发行版,以压缩的tar文件形式(扩展名为.tar.xz的文件),以及针对选定平台的特定平台包格式的二进制文件。

本节涵盖了在 Unix/Linux 平台上从压缩tar文件二进制发行版安装 MySQL 的过程。有关以 MySQL 安全功能为重点的 Linux 通用二进制发行版安装说明,请参阅安全部署指南。有关其他特定平台的二进制包格式,请参阅本手册中的其他特定平台部分。例如,对于 Windows 发行版,请参阅第 2.3 节,“在 Microsoft Windows 上安装 MySQL”。请参阅第 2.1.3 节,“如何获取 MySQL”以获取不同发行格式的 MySQL。

MySQL 压缩tar文件二进制发行版的名称形式为mysql-*VERSION*-*OS*.tar.xz,其中*VERSION*是一个数字(例如,8.0.36),而OS表示发行版所针对的操作系统类型(例如,pc-linux-i686winx64)。

Linux 通用二进制发行版还有一个“最小安装”版本的 MySQL 压缩tar文件,其名称形式为mysql-*VERSION*-*OS*-*GLIBCVER*-*ARCH`*-minimal.tar.xz。最小安装发行版不包括调试二进制文件,并且剥离了调试符号,使其比常规二进制发行版要小得多。如果您选择安装最小安装发行版,请记得在接下来的说明中调整文件名格式的差异。

警告

  • 如果您以前使用操作系统本机包管理系统(如 Yum 或 APT)安装过 MySQL,则可能在使用本机二进制文件安装时遇到问题。确保您之前安装的 MySQL 已完全删除(使用您的包管理系统),并且任何其他文件,如旧版本的数据文件,也已删除。您还应检查配置文件,如/etc/my.cnf/etc/mysql目录,并将其删除。

    有关使用官方 MySQL 包替换第三方包的信息,请参阅相关的 APT 指南或 Yum 指南。

  • 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
    
  • Oracle Linux 8 / Red Hat 8(EL8):这些平台默认不安装文件 /lib64/libtinfo.so.5,而 MySQL 客户端 bin/mysql 对于包 mysql-VERSION-el7-x86_64.tar.gzmysql-VERSION-linux-glibc2.12-x86_64.tar.xz 是必需的。要解决此问题,请安装 ncurses-compat-libs 包:

    $> *yum install ncurses-compat-libs*
    

要安装压缩的 tar 文件二进制发行版,请将其解压缩到您选择的安装位置(通常为 /usr/local/mysql)。这将创建以下表中显示的目录。

表 2.3 通用 Unix/Linux 二进制包 MySQL 安装布局

目录 目录内容
bin mysqld 服务器、客户端和实用程序
docs MySQL 手册的 Info 格式
man Unix 手册页
include 包含(头)文件
lib
share 错误消息、字典和数据库安装的 SQL
support-files 各种支持文件

调试版本的mysqld二进制文件可作为mysqld-debug使用。要从源代码分发编译自己的 MySQL 调试版本,请使用适当的配置选项以启用调试支持。参见第 2.8 节,“从源代码安装 MySQL”。

要安装和使用 MySQL 二进制发行版,命令序列如下:

$> groupadd mysql
$> useradd -r -g mysql -s /bin/false mysql
$> cd /usr/local
$> tar xvf */path/to/mysql-VERSION-OS*.tar.xz
$> 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

注意

此过程假定您对系统具有 root(管理员)访问权限。或者,您可以使用 sudo(Linux)或 pfexec(Solaris)命令为每个命令添加前缀。

mysql-files 目录提供了一个方便的位置,可用作 secure_file_priv 系统变量的值,该变量将导入和导出操作限制为特定目录。参见第 7.1.8 节,“服务器系统变量”。

安装二进制发行版的更详细版本如下。

创建一个 mysql 用户和组

如果您的系统尚未具有用于运行mysqld的用户和组,您可能需要创建它们。以下命令添加 mysql 组和 mysql 用户。您可能希望将用户和组命名为其他名称而不是 mysql。如果是这样,请在以下说明中替换适当的名称。在不同版本的 Unix/Linux 上,useraddgroupadd 的语法可能略有不同,或者可能具有不同的名称,如 adduseraddgroup

$> groupadd mysql
$> useradd -r -g mysql -s /bin/false mysql

注���

因为用户仅用于所有权目的,而非登录目的,所以 useradd 命令使用 -r-s /bin/false 选项创建一个用户,该用户没有登录到服务器主机的权限。如果您的 useradd 不支持这些选项,请省略它们。

获取并解压发行版

选择您想要解压发行版的目录,并切换到该目录。这里的示例将发行版解压到 /usr/local。因此,这些说明假定您有权限在 /usr/local 中创建文件和目录。如果该��录受保护,您必须以 root 身份执行安装。

$> cd /usr/local

按照 第 2.1.3 节,“如何获取 MySQL” 中的说明获取一个发行版文件。对于特定版本,所有平台的二进制发行版都是从相同的 MySQL 源发行版构建的。

解压发行版,这将创建安装目录。如果 tar 支持 z 选项,则可以使用 tar 来解压缩和解包发行版:

$> 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 版本。通常这些版本可以在 GNU 或自由软件目录中找到,比如 /usr/sfw/bin/usr/local/bin 中的 gnutargtartar。GNU tar 可以从 www.gnu.org/software/tar/ 获取。

如果您的 tar 不支持 xz 格式,则使用 xz 命令解压发行版,然后使用 tar 解包。用以下替代命令替换前面的 tar 命令以解压缩和提取发行版:

$> xz -dc */path/to/mysql-VERSION-OS*.tar.xz | tar x

接下来,创建一个指向 tar 创建的安装目录的符号链接:

$> ln -s *full-path-to-mysql-VERSION-OS* mysql

ln 命令创建一个指向安装目录的符号链接。这使您可以更轻松地将其称为 /usr/local/mysql。为了避免在使用 MySQL 时总是需要键入客户端程序的路径名,您可以将 /usr/local/mysql/bin 目录添加到您的 PATH 变量中:

$> export PATH=$PATH:/usr/local/mysql/bin

执行后安装设置

安装过程的其余部分涉及设置发行版所有权和访问权限,初始化数据目录,启动 MySQL 服务器,并设置配置文件。有关说明,请参阅 第 2.9 节,“后安装设置和测试”。

2.3 在 Microsoft Windows 上安装 MySQL

原文:dev.mysql.com/doc/refman/8.0/en/windows-installation.html

2.3.1 Microsoft Windows 上的 MySQL 安装布局

2.3.2 选择安装包

2.3.3 Windows 上的 MySQL 安装程序

2.3.4 使用noinstall ZIP 存档在 Microsoft Windows 上安装 MySQL

2.3.5 解决 Microsoft Windows 上的 MySQL 服务器安装问题

2.3.6 Windows 后安装程序

2.3.7 Windows 平台限制

重要提示

MySQL 8.0 Server 在 Windows 平台上运行需要 Microsoft Visual C++ 2019 Redistributable Package。用户在安装服务器之前应确保该软件包已在系统上安装。该软件包可在Microsoft Download Center上获得。此外,MySQL 调试二进制文件需要安装 Visual Studio 2019。

MySQL 仅适用于 Microsoft Windows 64 位操作系统。有关支持的 Windows 平台信息,请参见www.mysql.com/support/supportedplatforms/database.html

在 Microsoft Windows 上安装 MySQL 有不同的方法。

MySQL 安装程序方法

最简单且推荐的方法是下载 MySQL 安装程序(用于 Windows),并让其安装和配置特定版本的 MySQL Server 如下:

  1. dev.mysql.com/downloads/installer/下载 MySQL 安装程序并执行。

    注意

    与标准 MySQL 安装程序不同,较小的web-community版本不捆绑任何 MySQL 应用程序,而只下载您选择安装的 MySQL 产品。

  2. 确定用于 MySQL 产品初始安装的设置类型。例如:

    • 开发者默认:提供了一个包括所选版本的 MySQL Server 和其他与 MySQL 开发相关的 MySQL 工具的设置类型,如 MySQL Workbench。

    • 仅服务器:为所选版本的 MySQL Server 提供一个设置,不包括其他产品。

    • 自定义:允许您选择任何版本的 MySQL Server 和其他 MySQL 产品。

  3. 安装服务器实例(和产品),然后按照屏幕上的说明开始服务器配置。有关每个单独步骤的更多信息,请参见 Section 2.3.3.3.1, “使用 MySQL 安装程序配置 MySQL 服务器”。

MySQL 现在已安装。如果您将 MySQL 配置为服务,则 Windows 每次重新启动系统时都会自动启动 MySQL 服务器。此外,此过程会在本地主机上安装 MySQL Installer 应用程序,您以后可以使用它来升级或重新配置 MySQL 服务器。

注意

如果您在系统上安装了 MySQL Workbench,请考虑使用它来检查您的新 MySQL 服务器连接。默认情况下,安装 MySQL 后程序会自动启动。

附加安装信息

可以将 MySQL 作为标准应用程序或 Windows 服务运行。通过使用服务,您可以通过标准的 Windows 服务管理工具监视和控制服务器的运行。有关更多信息,请参见 Section 2.3.4.8, “Starting MySQL as a Windows Service”。

为了适应RESTART语句,当作为服务或独立运行时,MySQL 服务器会进行分叉,以便监视进程监督服务器进程。在这种情况下,会有两个mysqld进程。如果不需要RESTART功能,则可以使用--no-monitor选项启动服务器。请参见 Section 15.7.8.8, “RESTART Statement”。

通常,您应该使用具有管理员权限的帐户在 Windows 上安装 MySQL。否则,您可能会在某些操作(如编辑PATH环境变量或访问服务控制管理器)中遇到问题。安装后,MySQL 不需��使用具有管理员权限的用户执行。

有关在 Windows 平台上使用 MySQL 的限制列表,请参见 Section 2.3.7, “Windows Platform Restrictions”。

除了 MySQL Server 软件包外,您可能需要或希望使用其他组件来与您的应用程序或开发环境一起使用 MySQL。这些组件包括但不限于:

  • 要使用 ODBC 连接到 MySQL 服务器,您必须拥有 Connector/ODBC 驱动程序。有关更多信息,包括安装和配置说明,请参见 MySQL Connector/ODBC Developer Guide。

    注意

    MySQL Installer 会为您安装和配置 Connector/ODBC。

  • 要在.NET 应用程序中使用 MySQL 服务器,您必须拥有 Connector/NET 驱动程序。有关更多信息,包括安装和配置说明,请参见 MySQL Connector/NET Developer Guide。

    注意

    MySQL Installer 会为您安装和配置 MySQL Connector/NET。

Windows 上的 MySQL 发行版可以从dev.mysql.com/downloads/下载。请参见 Section 2.1.3, “How to Get MySQL”。

Windows 版本的 MySQL 有几种分发格式,详细信息如下。一般来说,您应该使用 MySQL Installer。它包含比旧的 MSI 更多的功能和 MySQL 产品,比压缩文件更简单易用,并且您无需额外的工具即可运行 MySQL。MySQL Installer 自动安装 MySQL Server 和其他 MySQL 产品,创建一个选项文件,启动服务器,并允许您创建默认用户帐户。有关选择软件包的更多信息,请参见 第 2.3.2 节,“选择安装软件包”。

  • MySQL Installer 分发包括 MySQL Server 和其他 MySQL 产品,包括 MySQL Workbench 和 MySQL for Visual Studio。MySQL Installer 还可用于将来升级这些产品(请参见 dev.mysql.com/doc/mysql-compat-matrix/en/)。

    有关使用 MySQL Installer 安装 MySQL 的说明,请参见 第 2.3.3 节,“Windows 上的 MySQL Installer”。

  • 标准二进制分发(打包为压缩文件)包含您解压缩到所选位置的所有必要文件。此软件包包含完整 Windows MSI 安装程序软件包中的所有文件,但不包括安装程序。

    有关使用压缩文件安装 MySQL 的说明,请参见 第 2.3.4 节,“使用 noinstall ZIP 存档在 Microsoft Windows 上安装 MySQL”。

  • 源码分发格式包含所有代码和支持文件,用于使用 Visual Studio 编译器系统构建可执行文件。

    构建 MySQL 源码的 Windows 指南,请参见 第 2.8 节,“从源码安装 MySQL”。

Windows 上的 MySQL 注意事项

  • 大表支持

    如果您需要大于 4GB 的表,请在 NTFS 或更新的文件系统上安装 MySQL。在创建表时不要忘记使用 MAX_ROWSAVG_ROW_LENGTH。请参见 第 15.1.20 节,“CREATE TABLE 语句”。

  • MySQL 和病毒检查软件

    在包含 MySQL 数据和临时表的目录上运行诺顿/赛门铁克防病毒软件可能会导致问题,这会影响 MySQL 的性能,同时防病毒软件可能会错误地将文件内容识别为垃圾邮件。这是由于防病毒软件使用的指纹机制以及 MySQL 快速更新不同文件的方式,这可能被识别为潜在的安全风险。

    安装完 MySQL 服务器后,建议在用于存储 MySQL 表数据的主目录(datadir)上禁用病毒扫描。通常,病毒扫描软件内置了一个功能,可以忽略特定目录。

    另外,默认情况下,MySQL 会在标准 Windows 临时目录中创建临时文件。为了防止临时文件被扫描,配置一个单独的临时目录用于 MySQL 临时文件,并将该目录添加到病毒扫描排除列表中。要做到这一点,向你的my.ini配置文件添加一个tmpdir参数的配置选项。更多信息,请参见 Section 2.3.4.2, “Creating an Option File”。

2.3.1 Microsoft Windows 上的 MySQL 安装布局

原文:dev.mysql.com/doc/refman/8.0/en/windows-installation-layout.html

对于 Windows 上的 MySQL 8.0,默认安装目录是 C:\Program Files\MySQL\MySQL Server 8.0,如果使用 MySQL Installer 进行安装。如果您使用 ZIP 存档方法安装 MySQL,则可能更喜欢安装在 C:\mysql。但是,子目录的布局保持不变。

所有文件都位于此父目录中,使用下表所示的结构。

表 2.4 Microsoft Windows 上默认的 MySQL 安装布局

目录 目录内容 备注
bin mysqld 服务器,客户端和实用程序
%PROGRAMDATA%\MySQL\MySQL Server 8.0\ 日志文件,数据库 Windows 系统变量 %PROGRAMDATA% 默认为 C:\ProgramData
docs 发行文档 使用 MySQL Installer,使用 Modify 操作选择此可选文件夹。
include 包含(头)文件
lib 库文件
share 杂项支持文件,包括错误消息,字符集文件,示例配置文件,用于数据库安装的 SQL

2.3.2 选择安装包

原文:dev.mysql.com/doc/refman/8.0/en/windows-choosing-package.html

对于 MySQL 8.0,在 Windows 上安装 MySQL 时,有多种安装包格式可供选择。本节描述的软件包格式包括:

  • MySQL Installer

  • MySQL noinstall ZIP Archives

  • MySQL Docker Images

程序数据库(PDB)文件(文件扩展名为 pdb)提供了在出现问题时调试 MySQL 安装的信息。这些文件包含在 MySQL 的 ZIP Archive 发行版中(但不包括 MSI 发行版)。

MySQL Installer

该软件包的文件名类似于 mysql-installer-community-8.0.36.0.msimysql-installer-commercial-8.0.36.0.msi,并利用 MSIs 自动安装 MySQL 服务器和其他产品。MySQL Installer 下载并应用更新到自身和每个已安装的产品。它还配置已安装的 MySQL 服务器(包括一个沙箱 InnoDB 集群测试设置)和 MySQL Router。MySQL Installer 推荐给大多数用户。

MySQL Installer 可以安装和管理(添加、修改、升级和删除)许多其他 MySQL 产品,包括:

  • 应用程序 – MySQL Workbench、MySQL for Visual Studio、MySQL Shell 和 MySQL Router(参见 dev.mysql.com/doc/mysql-compat-matrix/en/

  • 连接器 – MySQL Connector/C++、MySQL Connector/NET、Connector/ODBC、MySQL Connector/Python、MySQL Connector/J、MySQL Connector/Node.js

  • 文档 – MySQL 手册(PDF 格式)、示例和示例

MySQL Installer 可在所有 MySQL 支持的 Windows 版本上运行(参见 www.mysql.com/support/supportedplatforms/database.html)。

注意

因为 MySQL Installer 不是 Microsoft Windows 的本机组件,并且依赖于 .NET,所以它不适用于像 Windows Server 的 Server Core 版本这样的最小安装选项。

有关如何使用 MySQL Installer 安装 MySQL 的说明,请参见 Section 2.3.3, “MySQL Installer for Windows”。

MySQL noinstall ZIP Archives

这些软件包包含完整 MySQL 服务器安装包中的文件,除了 GUI。这种格式不包括自动安装程序,必须手动安装和配置。

noinstall ZIP 归档文件分为两个单独的压缩文件。主包名为mysql-*VERSION*-winx64.zip。其中包含了在系统上使用 MySQL 所需的组件。可选的 MySQL 测试套件、MySQL 基准套件和调试二进制/信息组件(包括 PDB 文件)位于名为mysql-*VERSION*-winx64-debug-test.zip的单独压缩文件中。

如果选择安装noinstall ZIP 归档文件,请参见 Section 2.3.4, “使用noinstall ZIP 归档文件在 Microsoft Windows 上安装 MySQL”。

MySQL Docker 镜像

有关在 Windows 平台上使用 Oracle 提供的 MySQL Docker 镜像的信息,请参见 Section 2.5.6.3, “使用 Docker 在 Windows 和其他非 Linux 平台上部署 MySQL”。

警告

Oracle 提供的 MySQL Docker 镜像专为 Linux 平台构建。不支持其他平台,使用 Oracle 提供的 MySQL Docker 镜像在这些平台上运行属于自担风险。

2.3.3 Windows 版 MySQL 安装程序

原文:dev.mysql.com/doc/refman/8.0/en/mysql-installer.html

2.3.3.1 MySQL 安装程序初始设置

2.3.3.2 使用 MySQL 安装程序设置替代服务器路径

2.3.3.3 使用 MySQL 安装程序进行安装工作流程

2.3.3.4 MySQL 安装程序产品目录和仪表板

2.3.3.5 MySQL 安装程序控制台参考

MySQL 安装程序是一个独立的应用程序,旨在简化在运行 Microsoft Windows 上的 MySQL 产品的安装和配置复杂性。它与以下 MySQL 产品一起下载并支持:

  • MySQL 服务器

    MySQL 安装程序可以在同一主机上同时安装和管理多个独立的 MySQL 服务器实例。例如,MySQL 安装程序可以在同一主机上安装、配置和升级 MySQL 5.7 和 MySQL 8.0 的独立实例。MySQL 安装程序不允许在主要和次要版本号之间进行服务器升级,但允许在一个发布系列内进行升级(例如从 8.0.21 到 8.0.22)。

    注意

    MySQL 安装程序无法在同一主机上安装 CommunityCommercial 版本的 MySQL 服务器。如果您需要在同一主机上安装两个版本,请考虑使用 ZIP 存档分发来安装其中一个版本。

  • MySQL 应用程序

    MySQL Workbench、MySQL Shell 和 MySQL Router。

  • MySQL 连接器(直至 MySQL 8.0.33)

    MySQL Connector/NET、MySQL Connector/Python、MySQL Connector/ODBC、MySQL Connector/J 和 MySQL Connector/C++。要安装 MySQL Connector/Node.js,请参阅dev.mysql.com/downloads/connector/nodejs/

    注意

    要安装更新的 MySQL 连接器,请访问 https://dev.mysql.com/downloads/。

安装要求

MySQL 安装程序需要 Microsoft .NET Framework 4.5.2 或更高版本。如果主机计算机上未安装此版本,请访问微软网站下载。

在成功安装后调用 MySQL 安装程序:

  1. 右键单击 Windows 开始,选择运行,然后单击浏览。导航至Program Files (x86) > MySQL > MySQL Installer for Windows以打开程序文件夹。

  2. 选择以下文件之一:

    • MySQLInstaller.exe 以打开图形应用程序。

    • MySQLInstallerConsole.exe 以打开命令行应用程序。

  3. 单击打开,然后在运行窗口中单击确定。如果提示允许应用程序对设备进行更改,请选择

每次调用 MySQL 安装程序时,初始化过程会检查是否有互联网连接,并在找不到互联网访问时(且离线模式已禁用)提示您启用离线模式。选择以在没有互联网连接功能的情况下运行 MySQL 安装程序。启用离线模式时,MySQL 产品的可用性仅限于在启用离线模式时在产品缓存中的产品。要下载 MySQL 产品,请单击仪表板上显示的离线模式禁用快速操作。

下载最新 MySQL 产品的元数据清单需要互联网连接,这些产品不是完整捆绑包的一部分。当您首次启动应用程序时,MySQL 安装程序会尝试下载清单,然后在可配置的间隔时间内定期下载(请参阅 MySQL 安装程序选项)。或者,您可以通过在 MySQL 安装程序仪表板中单击目录来手动检索更新的清单。

注意

如果首次或后续清单下载失败,将记录错误,并且在会话期间可能会限制您对 MySQL 产品的访问。MySQL 安装程序会在每次启动时尝试下载清单,直到初始清单结构更新为止。如需帮助查找产品,请参阅查找要安装的产品。

MySQL 安装程序社区版本

dev.mysql.com/downloads/installer/下载软件以安装 Windows 的所有 MySQL 产品的社区版本。选择以下 MySQL 安装程序包选项:

  • Web:仅包含 MySQL 安装程序和配置文件。Web 包选项仅下载您选择安装的 MySQL 产品,但每次下载都需要互联网连接。该文件的大小约为 2 MB。文件名的形式为mysql-installer-community-web-*VERSION*.*N*.msi,其中VERSION是 MySQL 服务器版本号,例如 8.0,N是包号,从 0 开始。

  • 完整或当前捆绑包:捆绑了所有 Windows 的 MySQL 产品(包括 MySQL 服务器)。文件大小超过 300 MB,名称的形式为mysql-installer-community-*VERSION*.*N*.msi,其中VERSION是 MySQL Server 版本号,例如 8.0,N是包号,从 0 开始。

MySQL 安装程序商业版本

edelivery.oracle.com/下载软件,以安装 MySQL 产品的商业版(标准版或企业版)用于 Windows。如果您已登录到您的我的 Oracle 支持(MOS)账户,商业版包括社区版中所有当前和以前的 GA 版本,但不包括开发里程碑版本。当您未登录时,您只能看到您已经下载的捆绑产品列表。

商业版还包括以下产品:

  • 工作台 SE/EE

  • MySQL 企业备份

  • MySQL 企业防火墙

商业版与您的 MOS 账户集成。有关知识库内容和补丁,请参见我的 Oracle 支持

原文:dev.mysql.com/doc/refman/8.0/en/mysql-installer-setup.html

2.3.3.1 MySQL Installer 初始设置

  • 选择设置类型

  • 路径冲突

  • 检查要求

  • MySQL Installer 配置文件

当您第一次下载 MySQL Installer 时,设置向导将引导您完成 MySQL 产品的初始安装。如下图所示,初始设置是整个过程中的一次性活动。MySQL Installer 在初始设置期间检测主机上已安装的现有 MySQL 产品,并将它们添加到要管理的产品列表中。

图 2.7 MySQL Installer 流程概述

MySQL Installer 流程。不重复步骤:下载 MySQL Installer;执行初始设置。重复步骤:安装产品(下载产品,运行.msi 文件,配置和安装完成);管理产品和更新 MySQL Installer 目录。

MySQL Installer 在初始设置期间将配置文件(稍后描述)提取到主机的硬盘上。尽管 MySQL Installer 是一个 32 位应用程序,但它可以安装 32 位和 64 位二进制文件。

初始设置会在“开始”菜单下的 MySQL 文件夹组中添加一个链接。点击“开始”,MySQL,然后点击 MySQL Installer - [社区 | 商业]以打开图形工具的社区版或商业版。

选择设置类型

在初始设置过程中,您将被提示选择要在主机上安装的 MySQL 产品。一个选择是使用符合您设置要求的预定设置类型。默认情况下,下载和安装时会包括 GA 和预发布产品,其中 Client only 和 Full 设置类型。选择“仅安装 GA 产品”选项,以在使用这些设置类型时限制产品集仅包括 GA 产品。

注意

仅商业版 MySQL 产品,如 MySQL 企业备份,可供选择和安装,如果您使用 MySQL Installer 的商业版(参见 MySQL Installer 商业版发布)。

选择以下设置类型之一确定初始安装,不限制您以后安装或更新 Windows 上的 MySQL 产品的能力:

  • 仅服务器:仅安装 MySQL 服务器。此设置类型安装您在下载 MySQL Installer 时选择的 GA 或开发版本服务器。它使用默认安装和数据路径。

  • 仅客户端:仅安装最新的 MySQL 应用程序(如 MySQL Shell、MySQL Router 和 MySQL Workbench)。此设置类型不包括 MySQL 服务器或通常与服务器捆绑在一起的客户端程序,如mysqlmysqladmin

  • 完整:安装所有可用的 MySQL 产品,不包括 MySQL 连接器。

  • 自定义:自定义设置类型使您可以从 MySQL Installer 目录中筛选和选择单个 MySQL 产品。

    注意

    对于 MySQL Server 版本 8.0.20(及更早版本)和 MySQL 5.7(所有版本),您用于运行 MySQL Installer 的帐户可能没有足够的权限来安装服务器数据文件,这可能会中断安装,因为无法执行ExecSecureObjects MSI 操作。要继续,请在再次尝试安装服务器之前取消选择“服务器数据文件”功能。如需帮助,请参阅要安装的产品功能。

    对于 MySQL Server 8.0.21(及更高版本),“服务器数据文件”复选框已从功能树中移除。

    使用自定义设置类型安装:

    • 产品或产品版本不在通常的下载位置提供。目录包含所有产品发布版本,包括预发布(或开发)和 GA 之间的其他发布版本。

    • 使用替代安装路径、数据路径或两者的 MySQL 服务器实例。有关如何调整路径的说明,请参阅第 2.3.3.2 节,“使用 MySQL Installer 设置替代服务器路径”。

    • 同一主机上同时存在两个或更多个 MySQL 服务器版本(例如,5.7 和 8.0)。

    • 一种特定的产品和功能组合不作为预设的设置类型提供。例如,您可以安装单个产品,如 MySQL Workbench,而不是为 Windows 安装所有客户端应用程序。

路径冲突

当产品的默认安装或数据文件夹(MySQL 服务器所需)已经存在于主机上时,向导会显示路径冲突步骤,以识别每个冲突并使您能够采取措施避免新安装覆盖现有文件夹中的文件。仅当 MySQL Installer 检测到冲突时,您才会在初始设置中看到此步骤。

要解决路径冲突,请执行以下操作之一:

  • 从列表中选择一个产品以显示冲突选项。警告符号表示哪条路径存在冲突。使用浏览按钮选择新路径,然后点击“下一步”。

  • 点击“返回”选择不同的设置类型或产品版本(如果适用)。自定义设置类型使您可以选择单���产品版本。

  • 点击“下一步”以忽略冲突并覆盖现有文件夹中的文件。

  • 删除现有产品。点击“取消”以停止初始设置并关闭 MySQL Installer。再次从“开始”菜单打开 MySQL Installer,并使用 MySQL Installer 仪表板中的“删除”操作从主机中删除已安装的产品。

检查要求

MySQL Installer 使用package-rules.xml文件中的条目来确定主机上是否安装了每个产品的先决条件软件。当要求检查失败时,MySQL Installer 显示“检查要求”步骤,以帮助您更新主机。每次下载新产品(或版本)进行安装时,都会评估要求。以下图标识并描述了此步骤的关键区域。

图 2.8 检查要求

MySQL Installer 在下载和安装任何要求之前的检查要求。

检查要求元素的描述
  1. 显示初始设置中的当前步骤。此列表中的步骤可能会略有变化,具体取决于主机上已安装的产品、先决条件软件的可用性以及将要安装在主机上的产品。

  2. 按产品列出所有待安装要求,并指示状态如下:

    • 状态列中的空格表示 MySQL Installer 可以尝试为您下载并安装所需软件。

    • 状态列中的单词手动表示您必须手动满足要求。选择列表中的每个产品以查看其要求详情。

  3. 详细描述要求,以帮助您进行每个手动解决方案。在可能的情况下,提供下载网址。下载并安装所需软件后,点击“检查”以验证是否满足要求。

  4. 提供以下一组操作以继续:

    • 返回 - 返回上一步。此操作使您可以选择不同的安装类型。

    • 执行 - 让 MySQL Installer 尝试下载并安装所有没有手动状态的所需软件。手动要求由您解决,并通过点击“检查”进行验证。

    • 下一步 - 不执行自动应用要求的请求,并继续安装,而不包括未通过要求检查步骤的产品。

    • 取消 - 停止安装 MySQL 产品。因为 MySQL Installer 已经安装,所以当您从“开始”菜单打开 MySQL Installer 并从仪表板中点击“添加”时,初始设置将重新开始。有关可用管理操作的描述,请参阅产品目录。

MySQL Installer 配置文件

所有 MySQL 安装程序文件都位于C:\Program Files (x86)C:\ProgramData文件夹中。以下表格描述了定义 MySQL 安装程序作为独立应用程序的文件和文件夹。

注意

安装的 MySQL 产品在更新或卸载 MySQL 安装程序时既不会被更改也不会被移除。

表 2.5 MySQL 安装程序配置文件

文件或文件夹 描述 文件夹层次结构
MySQL Installer for Windows 此文件夹包含运行 MySQL 安装程序和MySQLInstallerConsole.exe所需的所有文件,这是一个具有类似功能的命令行程序。 C:\Program Files (x86)
模板 模板文件夹中有每个 MySQL 服务器版本的一个文件。模板文件包含一些动态计算值的键和公式。 C:\ProgramData\MySQL\MySQL Installer for Windows\Manifest
package-rules.xml 此文件包含要安装的每个产品的先决条件。 C:\ProgramData\MySQL\MySQL Installer for Windows\Manifest
products.xml products文件(或产品目录)包含所有可供下载的产品列表。 C:\ProgramData\MySQL\MySQL Installer for Windows\Manifest
产品缓存 产品缓存文件夹包含所有与完整包或随后下载的独立.msi文件捆绑在一起的文件。 C:\ProgramData\MySQL\MySQL Installer for Windows

原文:dev.mysql.com/doc/refman/8.0/en/mysql-installer-change-path-proc.html

2.3.3.2 使用 MySQL Installer 设置替代服务器路径

在安装 MySQL 服务器时,您可以更改默认安装路径、数据路径或两者。安装服务器后,不能在不删除和重新安装服务器实例的情况下更改路径。

注意

从 MySQL Installer 1.4.39 开始,如果您手动移动已安装服务器的数据目录,MySQL Installer 会识别更改并可以进行重新配置操作而不会出现错误。

更改 MySQL 服务器路径

  1. 识别要更改的 MySQL 服务器,并按以下步骤启用高级选项链接:

    1. 通过以下方式之一导航到选择产品页面:

      1. 如果这是 MySQL Installer 的初次设置,请选择Custom设置类型并点击下一步。

      2. 如果 MySQL Installer 已安装在您的计算机上,请从仪表板中点击添加。

    2. 点击编辑以在可用产品中显示的产品列表上应用过滤器(请参见查找要安装的产品)。

    3. 选择服务器实例后,使用箭头将所选服务器移动到要安装的产品列表中。

    4. 点击服务器以选择它。当您选择服务器时,在要安装的产品列表下方启用了高级选项链接(请参见下图)。

  2. 点击高级选项以打开对话框,您可以在其中输入替代路径名。在路径名经过验证后,点击下一步继续配置步骤。

    图 2.9 更改 MySQL 服务器路径

    内容在周围的文本中描述。

原文:dev.mysql.com/doc/refman/8.0/en/mysql-installer-workflow.html

2.3.3.3 使用 MySQL Installer 进行安装工作流程

MySQL Installer 提供了一个类似向导的工具,用于在 Windows 上安装和配置新的 MySQL 产品。与仅运行一次的初始设置不同,MySQL Installer 每次下载或安装新产品时都会调用向导。对于首次安装,初始设置的步骤直接进入安装步骤。有关产品选择的帮助,请参阅查找要安装的产品。

注意

授予执行 MySQL Installer 的用户对所有生成的文件(如my.ini)的完全权限。这不适用于特定产品的文件和目录,例如在%ProgramData%中由SYSTEM拥有的 MySQL 服务器数据目录。

在主机上安装和配置的产品遵循可能需要您在各个步骤中输入的一般模式。如果尝试安装与现有 MySQL 服务器版本不兼容的产品(或选择升级的版本),则会收到可能不匹配的警告。

MySQL Installer 提供适用于不同工作流程的以下操作序列:

  • 选择产品。 如果在初始设置期间选择了Custom设置类型或从 MySQL Installer dashboard 中点击添加,则 MySQL Installer 会在侧边栏中包含此操作。从此页面,您可以应用筛选器以修改可用产品列表,然后选择一个或多个产品移动(使用箭头键)到要安装的产品列表。

    在此页面上选中复选框以激活选择功能操作,您可以在下载产品后自定义产品功能。

  • 下载。 如果安装了完整(非 Web)MySQL Installer 软件包,则在初始设置期间所有.msi文件都加载到Product Cache文件夹中,不会再次下载。否则,点击执行开始下载。每个产品的状态从准备下载变为下载中,然后变为已下载

    要重试单个未成功下载的内容,请点击“重试”链接。

    要重试所有未成功下载的内容,请点击“尝试全部”。

  • 选择要安装的功能(默认禁用)。 在 MySQL Installer 下载产品的.msi文件后,如果在之前的选择产品操作中启用了可选复选框,则可以自定义功能。

    要在安装后自定义产品功能,请在 MySQL Installer dashboard 中点击修改。

  • 安装。 列表中每个产品的状态从准备安装变为正在安装,最后变为完成。在过程中,单击“显示详细信息”以查看安装操作。

    如果此时取消安装,产品将被安装,但服务器(如果已安装)尚未配置。要重新启动服务器配置,请从“开始”菜单中打开 MySQL 安装程序,然后在仪表板旁边单击“重新配置”。

  • 产品配置。 这一步适用于 MySQL 服务器、MySQL 路由器和样本。列表中每个项目的状态应显示为准备配置。单击“下一步”开始为列表中的所有项目启动配置向导。此步骤中呈现的配置选项特定于您选择安装的数据库或路由器版本。

    单击“执行”开始应用配置选项,或单击“返回”(重复)返回到每个配置页面。

  • 安装完成。 这一步完成了不需要配置的产品的安装。它使您可以将日志复制到剪贴板,并启动某些应用程序,如 MySQL Workbench 和 MySQL Shell。单击“完成”以打开 MySQL 安装程序仪表板。

2.3.3.3.1 使用 MySQL 安装程序配置 MySQL 服务器

MySQL 安装程序执行 MySQL 服务器的初始配置。例如:

  • 它创建用于配置 MySQL 服务器的配置文件(my.ini)。在安装过程中做出的选择会影响写入此文件的值。某些定义是主机相关的。例如,如果主机的核心少于三个,则启用查询缓存。

    注意

    查询缓存在 MySQL 5.7 中已弃用,并在 MySQL 8.0(以及更高版本)中移除。

  • 默认情况下,为 MySQL 服务器添加了一个 Windows 服务。

  • 为 MySQL 服务器提供默认安装和数据路径。有关如何更改默认路径的说明,请参见第 2.3.3.2 节,“使用 MySQL 安装程序设置替代服务器路径”。

  • 它可以根据一般角色(如 DB 管理员、DB 设计师和备份管理员)创建具有可配置权限的 MySQL 服务器用户帐户。它可以选择创建一个名为MysqlSys的 Windows 用户,该用户具有有限的权限,然后运行 MySQL 服务器。

    用户账户也可以在 MySQL Workbench 中添加和配置。

  • 选中“显示高级选项”将使您能够设置额外的日志选项。这包括为错误日志、常规日志、慢查询日志(包括执行查询所需的秒数的配置)和二进制日志定义自定义文件路径。

在配置过程中,单击“下一步”以继续下一步或单击“返回”以返回上一步。在最后一步单击“执行”以应用服务器配置。

接下来的部分描述了适用于 Windows 上 MySQL 服务器的服务器配置选项。您安装的服务器版本将决定您可以配置哪些步骤和选项。配置 MySQL 服务器可能包括一些或所有步骤。

2.3.3.3.1.1 类型和网络
  • 服务器配置类型

    选择描述您设置的 MySQL 服务器配置类型。此设置定义要分配给 MySQL 服务器实例的系统资源(内存)量。

    • 开发:托管许多其他应用程序的计算机,通常是您的个人工作站。此设置配置 MySQL 以使用最少的内存。

    • 服务器:预计在此计算机上运行几个其他应用程序,例如 Web 服务器。服务器设置配置 MySQL 以使用中等内存量。

    • 专用:专用于运行 MySQL 服务器的计算机。由于此服务器上没有运行其他主要应用程序,因此此设置配置 MySQL 以使用大部分可用内存。

    • 手动

      防止 MySQL 安装程序尝试优化服务器安装,而是将默认值设置为my.ini配置文件中包含的服务器变量。选择“手动”类型后,MySQL 安装程序使用tmp_table_size变量分配的默认值为 16M。

  • 连接

    连接选项控制与 MySQL 的连接方式。选项包括:

    • TCP/IP:默认情况下选择此选项。您可以禁用 TCP/IP 网络以仅允许本地主机连接。选择 TCP/IP 连接选项后,您可以修改以下项目:

      • 用于经典 MySQL 协议连接的端口。默认值为3306

      • 配置 MySQL 8.0 服务器时显示的 X 协议端口。默认值为33060

      • 打开用于网络访问的 Windows 防火墙端口,默认情况下为 TCP/IP 连接选择。

      如果端口号已被使用,您将看到信息图标()显示在默认值旁边,并且在提供新端口号之前,“下一步”将被禁用。

    • 命名管道:启用并定义管道名称,类似于设置named_pipe系统变量。默认名称为MySQL

      当您选择命名管道连接时,然后继续下一步,您将被提示设置授予命名管道连接上客户端软件的访问控制级别。一些客户端只需要最低限度的访问控制来进行通信,而其他客户端则需要对命名管道拥有完全访问权限。

      您可以根据运行客户端的 Windows 用户(或用户)设置访问控制级别如下:

      • 所有用户的最小访问权限(推荐)。 默认情况下启用此级别,因为它是最安全的。

      • 完全访问本地组成员。 如果最小访问选项对客户端软件过于限制,可以使用此选项来减少具有命名管道上完全访问权限的用户数量。在您可以从列表中选择之前,必须在 Windows 上建立该组。对该组的成员资格应该受到限制和管理。Windows 要求新添加的成员首先注销,然后再次登录以加入本地组。

      • 所有用户的完全访问权限(不推荐)。 此选项不够安全,应仅在实施其他保障措施时设置。

    • 共享内存:启用并定义内存名称,类似于设置shared_memory系统变量。默认名称为MySQL

  • 高级配置

    选择显示高级和日志选项以在后续步骤中设置自定义日志记录和高级选项。日志选项步骤使您能够为错误日志、常规日志、慢查询日志(包括执行查询所需的秒数的配置)和二进制日志定义自定义文件路径。高级选项步骤使您能够设置在启用复制拓扑中的二进制日志记录时所需的唯一服务器 ID。

  • MySQL Enterprise Firewall(仅企业版)

    默认情况下未选中启用 MySQL Enterprise Firewall 复选框。选择此选项以启用提供对某些类型攻击的保护的安全列表。需要进行额外的安装后配置(参见第 8.4.7 节,“MySQL Enterprise Firewall”)。

    重要提示

    MySQL 8.0.19 存在一个问题,如果在服务器配置步骤中选择了 MySQL Enterprise Firewall,则会导致服务器无法启动。如果服务器启动操作失败,请点击取消以结束配置过程并返回仪表板。您必须卸载服务器。

    解决方法是在运行 MySQL Installer 时不选择 MySQL Enterprise Firewall(即不选中启用 MySQL Enterprise Firewall 复选框)。然后按照手动安装的说明安装 MySQL Enterprise Firewall(参见第 8.4.7.2 节,“安装或卸载 MySQL Enterprise Firewall”)。

2.3.3.3.1.2 认证方法

认证方法步骤仅在安装或升级 MySQL 8.0.4 或更高版本时可见。它介绍了两种服务器端认证选项之间的选择。您在下一步中创建的 MySQL 用户帐户将使用您在此步骤中选择的认证方法。

使用libmysqlclient 8.0 的 MySQL 8.0 连接器和社区驱动程序现在支持caching_sha2_password默认认证插件。然而,如果您无法更新客户端和应用程序以支持这种新的认证方法,您可以配置 MySQL 服务器使用mysql_native_password进行传统认证。有关此更改的影响的更多信息,请参阅 caching_sha2_password 作为首选认证插件。

如果您正在安装或升级到 MySQL 8.0.4 或更高版本,请选择以下一种认证方法:

  • 使用强密码加密进行认证(推荐)

    MySQL 8.0 支持基于改进的、更强大的基于 SHA256 的密码方法的新认证。建议所有新的 MySQL 服务器安装都使用这种方法。

    重要

    服务器上的caching_sha2_password认证插件需要新版本的连接器和客户端,这些版本支持新的 MySQL 8.0 默认认证。

  • 使用传统认证方法(保留 MySQL 5.x 兼容性)

    仅在以下情况下应考虑使用旧的 MySQL 5.x 传统认证方法:

    • 应用程序无法更新以使用 MySQL 8.0 连接器和驱动程序。

    • 重新编译现有应用程序不可行。

    • 尚无更新的特定语言连接器或驱动程序。

2.3.3.3.1.3 帐户和角色
  • 根账户密码

    分配根密码是必需的,在执行其他 MySQL Installer 操作时将要求输入密码。在提供的框中重复输入密码时将评估密码强度。有关密码要求或状态的描述性信息,请将鼠标指针移动到信息图标上()。

  • MySQL 用户帐户(可选)

    单击“添加用户”或“编辑用户”以创建或修改具有预定义角色的 MySQL 用户帐户。接下来,输入所需的帐户凭据:

    • 用户名:MySQL 用户名最长可达 32 个字符。

    • 主机:仅在需要远程连接到服务器时选择localhost以进行本地连接,或选择<All Hosts (%)>

    • 角色:每个预定义角色,如DB Admin,都配置有自己的一组特权。例如,DB Admin角色比DB Designer角色拥有更多特权。角色下拉列表包含每个角色的描述。

    • 密码:在输入密码时会执行密码强度评估。密码必须确认。MySQL 允许空白或空密码(被视为不安全)。

    仅适用于 MySQL 安装程序商业版本: Windows 的 MySQL 企业版是一款商业产品,还支持一种在 Windows 上执行外部身份验证的身份验证方法。通过 Windows 操作系统验证的帐户可以在不提供额外密码的情况下访问 MySQL 服务器。

    要创建一个使用 Windows 身份验证的新 MySQL 帐户,请输入用户名,然后选择主机和角色的值。单击 Windows 身份验证以启用authentication_windows插件。在 Windows 安全令牌区域,为每个可以使用 MySQL 用户名进行身份验证的 Windows 用户(或组)输入一个令牌。MySQL 帐户可以包括本地 Windows 用户和属于域的 Windows 用户的安全令牌。多个安全令牌由分号字符(;)分隔,并对本地和域帐户使用以下格式:

    • 本地帐户

      将简单的 Windows 用户名输入为每个本地用户或组的安全令牌;例如,finley;jeffrey;admin

    • 域帐户

      使用标准的 Windows 语法(domain\domainuser)或 MySQL 语法(domain\\domainuser)输入 Windows 域用户和组。

      对于域帐户,如果运行 MySQL 安装程序的帐户缺少查询 Active Directory 的权限,则可能需要使用域内管理员的凭据。如果是这种情况,请选择“使用以激活域管理员凭据验证 Active Directory 用户”。

    Windows 身份验证允许您在每次添加或修改令牌时测试所有安全令牌。单击“测试安全令牌”以验证(或重新验证)每个令牌。无效令牌将生成一个带有红色X图标和红色令牌文本的描述性错误消息。当所有令牌解析为有效(绿色文本且没有X图标)时,您可以单击“确定”以保存更改。

2.3.3.3.1.4 Windows 服务

在 Windows 平台上,MySQL 服务器可以作为由操作系统管理的命名服务运行,并配置为在 Windows 启动时自动启动。或者,您可以配置 MySQL 服务器作为需要手动配置的可执行程序运行。

  • 将 MySQL 服务器配置为 Windows 服务(默认选择)。

    当选择默认配置选项时,您还可以选择以下内容:

    • 在系统启动时启动 MySQL 服务器

      当选择(默认)时,服务启动类型设置为自动;否则,启动类型设置为手动。

    • 以以下方式运行 Windows 服务

      当选择标准系统帐户(默认)时,服务将作为网络服务登录。

      自定义用户选项必须具有作为服务登录到 Microsoft Windows 的权限。在配置此用户具有所需权限之前,下一步按钮将被禁用。

      通过在“开始”菜单中搜索“本地安全策略”在 Windows 中配置自定义用户帐户。在本地安全策略窗口中,选择本地策略,用户权限分配,然后选择“作为服务登录”以打开属性对话框。单击“添加用户或组”以添加自定义用户,然后在每个对话框中单击“确定”以保存更改。

  • 取消选择 Windows 服务选项。

2.3.3.3.1.5 服务器文件权限

可选地,在服务器配置操作期间可以管理位于C:\ProgramData\MySQL\MySQL Server 8.0\Data的文件夹和文件上设置的权限。您有以下选项:

  • MySQL Installer 可以配置文件夹和文件,完全授予运行 Windows 服务的用户(如果适用)和管理员组独占控制权。

    所有其他组和用户被拒绝访问。这是默认选项。

  • 使 MySQL Installer 使用类似于刚刚描述的配置选项,但还使 MySQL Installer 显示哪些用户可能具有完全控制权。

    然后您可以决定是否应该给予组或用户完全控制。如果不是,则可以将合格成员从此列表移动到限制所有访问的第二个列表。

  • 使 MySQL Installer 跳过在配置操作期间进行文件权限更改。

    如果选择此选项,则在服务器配置完成后,您需要手动保护Data文件夹及其相关文件。

2.3.3.3.1.6 日志选项

如果在类型和网络步骤中选择了“显示高级配置”复选框,则可用此步骤。要立即启用此步骤,请单击“返回”返回到类型和网络步骤,并选择复选框。

高级配置选项与以下 MySQL 日志文件相关:

  • 错误日志

  • 常规日志

  • 慢查询日志

  • 二进制日志

注意

二进制日志在 MySQL 5.7 及更高版本中默认启用。

2.3.3.3.1.7 高级选项

如果在类型和网络步骤中选择了“显示高级配置”复选框,则可用此步骤。要立即启用此步骤,请单击“返回”返回到类型和网络步骤,并选择复选框。

高级配置选项包括:

  • 服务器 ID

    设置在复制拓扑中使用的唯一标识符。如果启用了二进制日志记录,必须指定服务器 ID。默认 ID 值取决于服务器版本。有关更多信息,请参阅server_id系统变量的描述。

  • 表名大小写

    您可以在初始和后续配置服务器期间设置以下选项。对于 MySQL 8.0 发布系列,这些选项仅适用于服务器的初始配置。

    • 小写

      lower_case_table_names选项值设置为 1(默认值),其中表名以小写形式存储在磁盘上,比较不区分大小写。

    • 保留给定大小写

      lower_case_table_names选项值设置为 2,其中表名按给定方式存储,但比较时不区分大小写。

2.3.3.3.1.8 应用服务器配置

单击“执行”时,所有配置设置将应用于 MySQL 服务器。使用“配置步骤”选项卡跟踪每个操作的进度;每个图标在成功时从白色变为绿色(带有复选标记)。否则,如果某个操作超时,过程将停止并显示错误消息。单击“日志”选项卡查看日志。

安装成功并单击“完成”后,MySQL 安装程序和已安装的 MySQL 产品将添加到 Microsoft Windows“开始”菜单下的MySQL组中。打开 MySQL 安装程序会加载仪表板,其中列出了已安装的 MySQL 产品,并提供其他 MySQL 安装程序操作。

2.3.3.3.2 使用 MySQL 安装程序配置 MySQL 路由器

MySQL 安装程序下载并安装了一套用于在 Windows 上开发和管理关键业务应用程序的工具。该套件包括应用程序、连接器、文档和示例。

在初始设置期间,选择除仅服务器之外的任何预定设置类型,以安装工具的最新 GA 版本。使用自定义设置类型安装单个工具或特定版本。如果 MySQL 安装程序已安装在主机上,请使用“添加”操作从 MySQL 安装程序仪表板中选择并安装工具。

MySQL 路由器配置

MySQL 安装程序提供了一个配置向导,可以引导安装的 MySQL Router 8.0 实例,以在 MySQL 应用程序和 InnoDB 集群之间传输流量。配置完成后,MySQL Router 将作为本地 Windows 服务运行。

注意

在初始安装后和显式重新配置已安装的路由器时,会提示您配置 MySQL 路由器。相比之下,升级操作不需要或提示您配置升级后的产品。

要配置 MySQL 路由器,请执行以下操作:

  1. 设置 InnoDB 集群。

  2. 使用 MySQL 安装程序,下载并安装 MySQL 路由器应用程序。安装完成后,配置向导会提示您提供信息。选择“为 InnoDB 集群配置 MySQL 路由器”复选框以开始配置,并提供以下配置值:

    • 主机名:InnoDB 集群中主要(种子)服务器的主机名(默认为localhost)。

    • 端口:InnoDB 集群中主要(种子)服务器的端口号(默认为3306)。

    • 管理用户:具有根级别特权的管理用户。

    • 密码:管理用户的密码。

    • 经典的 MySQL 协议连接到 InnoDB 集群

      读/写:将第一个基本端口号设置为未使用的端口号(介于 80 和 65532 之间),向导将为您选择其余端口。

      接下来的图示显示了 MySQL 路由器配置页面的示例,第一个基本端口号指定为 6446,其余端口由向导设置为 6447、6448 和 6449。

    图 2.10 MySQL 路由器配置

    内容在周围的文本中描述。

  3. 点击“下一步”,然后点击“执行”以应用配置。点击“完成”关闭 MySQL 安装程序或返回到 MySQL 安装程序仪表板。

配置 MySQL 路由器后,root 帐户仅存在于用户表中的root@localhost(本地),而不是root@%(远程)。无论路由器和客户端位于何处,即使两者都位于与种子服务器相同的主机上,通过路由器传递的任何连接都被服务器视为远程连接,而不是本地连接。因此,使用本地主机进行的连接(请参见下面的示例)不会进行身份验证。

$> \c root@localhost:6446

原文:dev.mysql.com/doc/refman/8.0/en/mysql-installer-catalog-dashboard.html

2.3.3.4 MySQL 安装程序产品目录和仪表板

本节描述了 MySQL 安装程序产品目录、仪表板以及与产品选择和升级相关的其他操作。

  • 产品目录

  • MySQL 安装程序仪表板

  • 查找要安装的产品

  • 升级 MySQL 服务器

  • 移除 MySQL 服务器

  • 升级 MySQL 安装程序

产品目录

产品目录存储了适用于 Microsoft Windows 的所有已发布 MySQL 产品的完整列表,可从MySQL 下载中下载。默认情况下,当有互联网连接时,MySQL 安装程序会尝试在每七天启动时更新目录。您也可以从仪表板手动更新目录(稍后描述)。

最新的目录执行以下操作:

  • 填充“选择产品”页面的“可用产品”窗格。当您选择时,此步骤会出现:

    • 在初始设置期间的自定义设置类型。

    • 从仪表板执行添加操作。

  • 识别仪表板中列出的已安装产品是否有可用的产品更新。

该目录包括所有开发版本(预发布)、一般版本(当前 GA)和次要版本(其他版本)。目录中的产品会有所不同,具体取决于您下载的 MySQL 安装程序版本。

MySQL 安装程序仪表板

MySQL 安装程序仪表板是在初始设置完成后启动 MySQL 安装程序时看到的默认视图。如果在设置完成之前关闭了 MySQL 安装程序,则 MySQL 安装程序会在显示仪表板之前恢复初始设置。

注意

如果安装了 Oracle 终身维护支持的产品,例如 MySQL for Excel 和 MySQL Notifier,这些产品可能会显示在仪表板中。这些产品只能进行修改或移除。

图 2.11 MySQL 安装程序仪表板元素

内容在周围的文本中描述。

MySQL 安装程序仪表板元素描述
  1. MySQL Installer 仪表板操作提供了适用于已安装产品或目录中列出的产品的各种操作。要启动以下操作,请首先单击操作链接,然后选择要管理的产品或产品:

    • 添加:此操作打开“选择产品”页面。从那里,您可以调整过滤器,选择一个或多个需要下载的产品,并开始安装。有关使用过滤器的提示,请参阅查找要安装的产品。

      使用方向箭头将每个产品从“可用产品”列移动到“要安装的产品”列。要启用“产品功能”页面,您可以在其中自定义功能,请单击相关复选框(默认情况下禁用)。

      注意

      对于 MySQL Server 版本 8.0.20(及更早版本)和 MySQL 5.7(所有版本),您用于运行 MySQL Installer 的帐户可能没有足够的权限来安装服务器数据文件,这可能会中断安装,因为无法执行ExecSecureObjects MSI 操作。要继续,请在再次尝试安装服务器之前取消选择“服务器数据文件”功能。

      “服务器数据文件”复选框已从 MySQL Server 8.0.21(或更高版本)的功能树中移除。

    • 修改:使用此操作添加或删除与已安装产品相关联的功能。您可以修改的功能因产品而异。当选择“程序快捷方式”复选框时,产品将出现在MySQL组下的“开始”菜单中。

    • 升级:此操作加载“选择要升级的产品”页面,并将其填充为所有升级候选项。已安装产品可能有多个升级版本,该操作需要当前产品目录。MySQL Installer 一次升级所有选定的产品。单击“显示详细信息”以查看 MySQL Installer 执行的操作。

    • 移除:此操作打开“移除产品”页面,并将其填充为主机上安装的 MySQL 产品。选择要移除(卸载)的 MySQL 产品,然后单击“执行”以开始移除过程。在操作过程中,指示器显示已执行的步骤数,作为所有步骤的百分比。

      要选择要移除的产品,请执行以下操作之一:

      • 选择一个或多个产品的复选框。

      • 选择产品复选框以选择所有产品。

  2. 在每个已安装服务器旁边的快速操作列中的重新配置链接会加载服务器的当前配置值,然后循环执行所有配置步骤,使您能够更改选项和值。您必须提供具有 root 权限的凭据才能重新配置这些项目。单击“日志”选项卡以显示 MySQL Installer 执行的每个配置步骤的输出。

    完成后,MySQL Installer 停止服务器,应用配置更改,并为您重新启动服务器。有关每个配置选项的描述,请参见 Section 2.3.3.3.1, “MySQL Server Configuration with MySQL Installer”。与特定 MySQL 服务器版本关联的“示例和示例”也可以重新配置以应用新的功能设置(如果有)。

  3. 目录链接使您可以手动下载最新的 MySQL 产品目录,然后将这些产品变更与 MySQL Installer 集成。目录下载操作不会对主机上已安装的产品进行升级。相反,它返回到仪表板,并为每个已安装产品的“版本”列添加一个箭头图标,该产品具有更新版本。使用升级操作安装更新的产品版本。

    您还可以使用目录链接显示每个产品的当前变更历史,而无需下载新目录。选择“此时不更新”复选框以仅查看变更历史。

  4. MySQL Installer 关于图标()显示 MySQL Installer 的当前版本和关于 MySQL 的一般信息。版本号位于返回按钮上方。

    提示

    报告 MySQL Installer 问题时,请始终包括此版本号。

    除了关于 MySQL 信息()外,您还可以从侧边栏中选择以下图标:

    • MySQL Installer 的许可证图标()。

      本产品可能包含根据许可使用的第三方软件。如果您使用的是 MySQL Installer 的商业版本,则该图标将打开 MySQL Installer 商业许可信息用户手册,其中包含有关许可信息的信息,包括可能包含在此商业版本中的第三方软件的许可信息。如果您使用的是 MySQL Installer 的社区版本,则该图标将打开 MySQL Installer 社区许可信息用户手册,其中包含有关许可信息的信息,包括可能包含在此社区版本中的第三方软件的许可信息。

    • 资源链接图标()指向最新的 MySQL 产品文档、博客、网络研讨会等。

  5. MySQL Installer 选项图标()包括以下选项卡:

    • 通用:启用或禁用离线模式选项。如果选择了此选项,MySQL Installer 将配置为在不依赖于互联网连接功能的情况下运行。在离线模式下运行 MySQL Installer 时,您会在仪表板上看到一个警告以及一个禁用快捷操作。警告用于提醒您,在离线模式下运行 MySQL Installer 将阻止您下载最新的 MySQL 产品和产品目录更新。离线模式将持续,直到您禁用该选项。

      在启动时,MySQL Installer 将确定是否存在互联网连接,如果没有,则提示您启用离线模式以在没有连接的情况下继续工作。

    • 产品目录:管理自动目录更新。默认情况下,MySQL Installer 每七天在启动时检查目录更新。当有新产品或产品版本可用时,MySQL Installer 将其添加到目录中,然后在仪表板中列出的已安装产品的版本号旁插入一个箭头图标()。

      使用产品目录选项启用或禁用自动更新,并重置自动目录下载之间的天数。在启动时,MySQL Installer 使用您设置的天数来确定是否应尝试下载。如果 MySQL Installer 在下载目录时遇到错误,则在下次启动时将重复此操作。

    • 连接设置:MySQL Installer 执行的几个操作需要互联网访问。此选项使您能够使用默认值验证连接,或者使用不同的 URL,可以从列表中选择一个或手动添加一个。选择手动选项后,可以添加新的 URL,并且可以移动或删除列表中的所有 URL。当选择自动选项时,MySQL Installer 尝试连接到列表中的每个默认 URL(按顺序)直到建立连接。如果无法建立连接,它会引发错误。

    • 代理:MySQL Installer 提供多种代理模式,使您能够在大多数网络环境中下载 MySQL 产品、更新或甚至产品目录。这些模式包括:

      • 无代理

        选择此模式以阻止 MySQL Installer 查找系统设置。此模式禁用任何代理设置。

      • 自动

        选择此模式,使 MySQL Installer 查找系统设置并在找到时使用这些设置,或者如果未找到任何设置,则不使用代理。这是默认模式。

      • 手动

        选择此模式,使 MySQL Installer 使用您的身份验证详细信息配置代理访问互联网。具体包括:

        • 代理服务器地址(http://服务器地址)和端口号

        • 用于身份验证的用户名和密码

查找要安装的产品

目录中的 MySQL 产品按类别列出:MySQL 服务器,应用程序,MySQL 连接器和文档。默认情况下,只有最新的 GA 版本会显示在“可用产品”窗格中。如果您正在寻找产品的预发布版本或旧版本,则可能在默认列表中看不到。

注意

保持产品目录最新。单击 MySQL Installer 仪表板上的“目录”以下载最新的清单。

要更改默认产品列表,请单击仪表板上的“添加”以打开“选择产品”页面,然后单击“编辑”以打开下图所示的对话框。修改设置,然后单击“筛选”。

图 2.12 筛选可用产品

按文本、类别、成熟度、已下载和架构筛选。

重置以下一个或多个字段以修改可用产品列表:

  • 文本:按文本筛选。

  • 类别:所有软件(默认),MySQL 服务器,应用程序,MySQL 连接器或文档(用于示例和文档)。

  • 成熟度:当前捆绑包(最初仅显示完整包),预发布,当前 GA 或其他版本。如果看到警告,请通过单击 MySQL Installer 仪表板上的“目录”来确认您拥有最新的产品清单。如果 MySQL Installer 无法下载清单,则您看到的产品范围将仅限于已捆绑产品,已位于“产品缓存”文件夹中的独立产品 MSIs,或两者兼有。

    注意

    MySQL Installer 的商业版本在选择预发布成熟度筛选时不显示任何 MySQL 产品。开发中的产品仅在 MySQL Installer 的社区版本中提供。

  • 已下载(默认未选中复选框)。允许您仅查看和管理已下载的产品。

  • 架构:任何(默认),32 位或 64 位。

升级 MySQL 服务器

重要的服务器升级条件:

  • MySQL Installer 不允许在主要发布版本或次要发布版本之间进行服务器升级,但允许在发布系列内进行升级,例如从 5.7.18 升级到 5.7.19。

  • 里程碑版本之间的升级(或从里程碑版本升级到 GA 版本)不受支持。里程碑版本中会发生重大开发变化,您可能会遇到兼容性问题或启动服务器时出现问题。

  • 对于升级到 MySQL 8.0.16 服务器及更高版本,复选框使您可以跳过系统表的升级检查和处理,同时正常检查和处理数据字典表。当上一个服务器升级被跳过或服务器被配置为沙箱 InnoDB 集群时,MySQL 安装程序不会提示您使用复选框。这种行为代表了 MySQL 服务器执行升级的方式的变化(参见第 3.4 节,“MySQL 升级过程升级了什么”),并且它改变了 MySQL 安装程序应用于配置过程的步骤顺序。

    如果选择跳过系统表升级检查并处理(不推荐),MySQL 安装程序将使用 --upgrade=MINIMAL 服务器选项启动升级后的服务器,该选项仅升级数据字典。如果您在没有 --upgrade=MINIMAL 选项的情况下停止然后重新启动服务器,则服务器会根据需要自动升级系统表。

    在升级配置(跳过系统表)完成后,日志选项卡和日志文件中将显示以下信息:

    WARNING: The system tables upgrade was skipped after upgrading MySQL Server. The 
    server will be started now with the --upgrade=MINIMAL option, but then each 
    time the server is started it will attempt to upgrade the system tables, unless 
    you modify the Windows service (command line) to add --upgrade=MINIMAL to bypass 
    the upgrade.
    
    FOR THE BEST RESULTS: Run mysqld.exe --upgrade=FORCE on the command line to upgrade
    the system tables manually.
    

选择新的服务器版本:

  1. 点击升级。确认升级产品窗格中产品名称旁边的复选框有一个勾号。取消您目前不打算升级的产品。

    注意

    对于同一发布系列中的服务器里程碑版本,MySQL 安装程序取消选择服务器升级并显示警告以指示不支持升级,识别继续的风险,并提供手动执行逻辑升级的步骤摘要。您可以自行承担重新选择服务器升级的风险。有关如何使用里程碑版本执行逻辑升级的说明,请参见逻辑升级。

  2. 点击列表中的产品以突出显示。此操作将在可升级版本窗格中填充每个选定产品的可用版本的详细信息:版本号、发布日期和一个Changes链接,以打开该版本的发布说明。

移除 MySQL 服务器

要删除本地 MySQL 服务器:

  1. 确定是否应删除本地数据目录。如果保留数据目录,则另一个服务器安装可以重用数据。此选项默认启用(删除数据目录)。

  2. 点击执行以开始卸载本地服务器。请注意,您选择要移除的所有产品也将在此时被卸载。

  3. (可选)点击日志选项卡以显示 MySQL 安装程序执行的当前操作。

升级 MySQL 安装程序

MySQL Installer 仍然安装在您的计算机上,就像其他软件一样,MySQL Installer 可以从先前的版本升级。在某些情况下,其他 MySQL 软件可能需要您升级 MySQL Installer 以确保兼容性。本节描述了如何识别当前的 MySQL Installer 版本以及如何手动升级 MySQL Installer。

定位已安装的 MySQL Installer 版本:

  1. 从搜索菜单启动 MySQL Installer。MySQL Installer 仪表板将打开。

  2. 点击 MySQL Installer 关于图标()。版本号位于返回按钮上方。

启动 MySQL Installer 的按需升级:

  1. 将安装了 MySQL Installer 的计算机连接到互联网。

  2. 从搜索菜单启动 MySQL Installer。MySQL Installer 仪表板将打开。

  3. 在仪表板底部点击“目录”打开“更新目录”窗口。

  4. 点击“执行”开始该过程。如果已安装的 MySQL Installer 版本可以升级,您将收到提示开始升级。

  5. 点击“下一步”查看目录的所有更改,然后点击“完成”返回仪表板。

  6. 验证(新)已安装的 MySQL Installer 版本(参见上一个步骤)。

原文:dev.mysql.com/doc/refman/8.0/en/MySQLInstallerConsole.html

2.3.3.5 MySQL Installer ���制台参考

MySQLInstallerConsole.exe提供类似于 MySQL Installer 的命令行功能。此参考包括:

  • MySQL 产品名称

  • 命令语法

  • 命令操作

当首次执行 MySQL Installer 时,控制台会被安装,然后在MySQL Installer for Windows目录中可用。默认情况下,目录位置为C:\Program Files (x86)\MySQL\MySQL Installer for Windows。您必须以管理员身份运行控制台。

要使用控制台:

  1. 通过从“开始”中选择“Windows 系统”,右键单击“命令提示符”,选择“更多”,然后选择“以管理员身份运行”来打开具有管理员权限的命令提示符。

  2. 从命令行,可选择将目录更改为MySQLInstallerConsole.exe命令所在的位置。例如,要使用默认安装位置:

    cd Program Files (x86)\MySQL\MySQL Installer for Windows
    
  3. 输入MySQLInstallerConsole.exe(或mysqlinstallerconsole),然后跟随一个命令操作来执行任务。例如,要显示控制台的帮助:

    MySQLInstallerConsole.exe --help
    
    =================== Start Initialization ===================
    MySQL Installer is running in Community mode
    
    Attempting to update manifest.
    Initializing product requirements.
    Loading product catalog.
    Checking for product packages in the bundle.
    Categorizing product catalog.
    Finding all installed packages.
    Your product catalog was last updated at 23/08/2022 12:41:05 p. m.
    Your product catalog has version number 671.
    =================== End Initialization ===================
    
    The following actions are available:
    
    Configure - Configures one or more of your installed programs.
    Help      - Provides list of available command actions.
    Install   - Installs and configures one or more available MySQL programs.
    List      - Lists all available MySQL products.
    Modify    - Modifies the features of installed products.
    Remove    - Removes one or more products from your system.
    Set       - Configures the general options of MySQL Installer.
    Status    - Shows the status of all installed products.
    Update    - Updates the current product catalog.
    Upgrade   - Upgrades one or more of your installed programs.
    
    The basic syntax for using MySQL Installer command actions. Brackets denote optional entities. 
    Curly braces denote a list of possible entities.
    
    ...
    
    
MySQL 产品名称

许多MySQLInstallerConsole命令操作接受一个或多个缩写短语,这些短语可以匹配目录中的 MySQL 产品(或产品)。用于命令的当前一组有效的短语在下表中显示。

注意

从 MySQL Installer 1.6.7 (8.0.34) 开始,installlistupgrade 命令选项不再适用于 MySQL for Visual Studio(现已停用)、MySQL 连接器/NET、MySQL 连接器/ODBC、MySQL 连接器/C++、MySQL 连接器/Python 和 MySQL 连接器/J。要安装更新的 MySQL 连接器,请访问 https://dev.mysql.com/downloads/。

表 2.6 用于 MySQLInstallerConsole.exe 命令的 MySQL 产品短语

短语 MySQL 产品
server MySQL 服务器
workbench MySQL Workbench
shell MySQL Shell
visual MySQL for Visual Studio
router MySQL 路由器
backup MySQL 企业备份(需要商业版本)
net MySQL 连接器/NET
odbc MySQL 连接器/ODBC
c++ MySQL 连接器/C++
python MySQL 连接器/Python
j MySQL 连接器/J
documentation MySQL 服务器文档
samples MySQL 示例(sakila 和 world 数据库)
短语 MySQL 产品
命令语法

MySQLInstallerConsole.exe 命令可以带有或不带有文件扩展名(.exe)发出,并且命令不区分大小写。

mysqlinstallerconsole[.exe] [[[--]action] [action_blocks_list] [options_list]]

描述:

*action*

允许的操作行为之一。如果省略,则默认操作等同于 --status 操作。对于所有操作,使用 -- 前缀是可选的。

可能的操作有:[--]configure、[--]help、[--]install、[--]list、[--]modify、[--]remove、[--]set、[--]status、[--]update 和 [--]upgrade

*action_blocks_list*

一个块列表,每个块代表一个不同的项目,具体取决于所选操作。块之间用逗号分隔。

--remove--upgrade 操作允许指定星号字符(*)表示所有产品。如果在此块的开头检测到 * 字符,则假定要处理所有产品,并忽略该块的其余部分。

语法:*|*action_block*[,*action_block*][,*action_block*]...

action_block:包含产品选择器,后跟数量不定的参数块,这些参数块根据所选操作的不同而表现不同(参见 Command Actions)。

*options_list*

零个或多个带有可能值的选项,用空格分隔。请参阅 Command Actions 以确定对应操作允许的选项。

语法:*option_value_pair*[ *option_value_pair*][ *option_value_pair*]...

option_value_pair:单个选项(例如,--silent)或具有选项前缀的键和相应值的元组。键值对的形式为 --*key*[=*value*]

命令操作

MySQLInstallerConsole.exe 支持以下命令操作:

注意

包含冒号字符(:)的配置块(或参数块)值必须用引号括起来。例如,install_dir="C:\MySQL\MySQL Server 8.0"

  • [--]configure [*product1*]:[*configuration_argument*]=[*value*], [*product2*]:[*configuration_argument*]=[*value*], [*...*]

    配置系统上的一个或多个 MySQL 产品。每个产品可以配置多个 configuration_argument=value 对。

    选项:

    --continue

    在处理包含每个产品参数的操作块时捕获错误时,继续处理下一个产品。如果未指定,在出现错误时整个操作将被中止。

    --help

    显示相应操作的选项和可用参数。如果存在该操作不会被执行,只会显示帮助信息,因此其他与操作相关的选项也会被忽略。

    --show-settings

    通过在--show-settings后传入产品名称来显示所选产品的可用选项。

    --silent

    禁用确认提示。

    示例:

    MySQLInstallerConsole --configure --show-settings server
    
    mysqlinstallerconsole.exe --configure server:port=3307
    
  • [--]help

    显示带有用法示例的帮助消息,然后退出。传入额外的命令操作以接收特定于该操作的帮助。

    选项:

    --action=*[action]*

    显示特定操作的帮助信息。与使用带有操作的--help选项相同。

    允许的值为:allconfigurehelp(默认)、installlistmodifyremovestatusupdateupgradeset

    --help

    显示相应操作的选项和可用参数。如果存在该操作,则仅显示帮助信息,不执行操作,因此其他与操作相关的选项也将被忽略。

    示例:

    MySQLInstallerConsole help
    
    MySQLInstallerConsole help --action=install
    
  • [--]install [*产品 1*]:[*功能*]:[*配置块*]:[*配置块*],[*产品 2*]:[*配置块*],[*...*]

    在系统上安装一个或多个 MySQL 产品。如果有预发布产品可用,当--type选项值为ClientFull时,将安装 GA 和预发布产品。在使用这些设置类型时,使用--only_ga_products选项将产品集限制为仅 GA 产品。

    描述:

    [*产品*]

    每个产品可以通过产品短语来指定,可以带有分号分隔的版本限定符,也可以不带。仅传入产品关键字会选择产品的最新版本。如果该版本的产品有多个架构可用,命令将返回清单列表中的第一个架构以供交互式确认。或者,您可以在产品关键字后使用--silent选项传入确切的版本和架构(x86x64)。

    [*功能*]

    默认情况下安装与 MySQL 产品关联的所有功能。功能块是一个以分号分隔的功能列表或选择所有功能的星号字符(*)。要移除功能,请使用modify命令。

    [*配置块*]

    可指定一个或多个配置块。每个配置块是一个以分号分隔的键值对列表。一个块可以包含configuser类型键;如果未定义,则config是默认类型。

    包含冒号字符(:)的配置块值必须用引号括起来。例如,installdir="C:\MySQL\MySQL Server 8.0"。每个产品只能定义一个配置类型块。在产品安装期间应为要创建的每个用户定义一个用户块。

    注意

    当重新配置产品时,不支持user类型键。

    选项:

    --auto-handle-prereqs

    如果存在,MySQL 安装程序会尝试下载和安装一些当前不存在的软件先决条件,可以通过最小干预解决。如果未使用--silent选项,则会为每个先决条件显示安装页面。如果省略--auto-handle-prereqs选项,则不会安装缺少先决条件的软件包。

    --continue

    在处理每个产品的参数块时捕获错误时,继续处理下一个产品。如果未指定,则在出现错误时整个操作将中止。

    --help

    显示相应操作的选项和可用参数。如果存在该选项,则仅显示帮助,不执行操作,因此其他与操作相关的选项也将被忽略。

    --mos-password=*password*

    设置 My Oracle Support(MOS)用户的商业版 MySQL 安装程序密码。

    --mos-user=*user_name*

    指定用于访问商业版 MySQL 安装程序的 My Oracle Support(MOS)用户名。如果不存在,则仅可安装捆绑包中的产品(如果有)。

    --only-ga-products

    限制产品集以仅包括 GA 产品。

    --setup-type=*setup_type*

    安装预定义的软件集。设置类型可以是以下之一:

    • Server: 安装单个 MySQL 服务器

    • Client: 安装客户端程序和库(不包括 MySQL 连接器)

    • Full: 安装所有内容(不包括 MySQL 连接器)

    • Custom: 安装用户选择的产品。这是默认选项。

    注意

    仅当未安装其他 MySQL 产品时,非自定义设置类型才有效。

    --show-settings

    通过在-showsettings后传入产品名称,显示所选产品的可用选项。

    --silent

    禁用确认提示。

    示例:

    mysqlinstallerconsole.exe --install j;8.0.29, net;8.0.28 --silent
    
    MySQLInstallerConsole install server;8.0.30:*:port=3307;server_id=2:type=user;user=foo
    

    一个示例,通过^分隔传入额外的配置块以适应:

    MySQLInstallerConsole --install server;8.0.30;x64:*:type=config;open_win_firewall=true; ^
       general_log=true;bin_log=true;server_id=3306;tcp_ip=true;port=3306;root_passwd=pass; ^
       install_dir="C:\MySQL\MySQL Server 8.0":type=user;user_name=foo;password=bar;role=DBManager
    
  • [--]list

    当此操作不带选项使用时,会激活一个交互式列表,可搜索所有可用的 MySQL 产品。输入MySQLInstallerConsole --list并指定要搜索的子字符串。

    选项:

    --all

    列出所有可用产品。如果使用此选项,则忽略所有其他选项。

    --arch=*architecture*

    列出包含指定架构的产品。允许的值为:x86x64any(默认)。此选项可与--name--version选项结合使用。

    --help

    显示相应操作的选项和可用参数。如果存在该选项,则仅显示帮助,不执行操作,因此其他与操作相关的选项也将被忽略。

    --name=*package_name*

    列出包含指定名称的产品(参见产品短语),此选项可与--version--arch选项结合使用。

    --version=*version*

    列出包含指定版本(如 8.0 或 5.7)的产品。此选项可以与 --name--arch 选项结合使用。

    示例:

    MySQLInstallerConsole --list --name=net --version=8.0
    
  • [--]modify [*product1*:-*removelist*|+*addlist*], [*product2*:-*removelist*|+*addlist*] [*...`*]

    修改或显示先前安装的 MySQL 产品的特性。要显示产品的特性,请将产品关键字附加到命令后,例如:

    MySQLInstallerConsole --modify server
    

    选项:

    --help

    显示相应操作的选项和可用参数。如果存在,操作不会被执行,只会显示帮助信息,因此其他与操作相关的选项也会被忽略。

    --silent

    禁用确认提示。

    示例:

    MySQLInstallerConsole --modify server:+documentation
    
    MySQLInstallerConsole modify server:-debug
    
  • [--]remove [*product1*], [*product2*] [*...*]

    从系统中移除一个或多个产品。可以传入星号字符(*)以一条命令移除所有 MySQL 产品。

    选项:

    --continue

    即使发生错误也继续操作。

    --help

    显示相应操作的选项和可用参数。如果存在,操作不会被执行,只会显示帮助信息,因此其他与操作相关的选项也会被忽略。

    --keep-datadir

    在删除 MySQL Server 产品时跳过数据目录的移除。

    --silent

    禁用确认提示。

    示例:

    mysqlinstallerconsole.exe remove *
    
    MySQLInstallerConsole --remove server --continue
    
  • [--]set

    设置一个或多个可配置选项,影响 MySQL 安装程序连接到互联网的方式以及是否激活自动产品目录更新功能。

    选项:

    --catalog-update=*bool_value*

    启用(true,默认)或禁用(false)自动产品目录更新。此选项需要与互联网的活动连接。

    --catalog-update-days=*int_value*

    接受介于 1(默认)和 365 之间的整数,表示 MySQL 安装程序启动时检查新目录更新之间的天数。如果 --catalog-updatefalse,则此选项将被忽略。

    --connection-validation=*validation_type*

    设置 MySQL 安装程序如何执行对互联网连接的检查。允许的值为 automatic(默认)和 manual

    --connection-validation-urls=*url_list*

    用双引号括起来并以逗号分隔的字符串,定义了在 --connection-validation 设置为 manual 时用于检查互联网连接的 URL 列表。按照提供的顺序进行检查。如果第一个 URL 失败,则使用列表中的下一个 URL,依此类推。

    --offline-mode=*bool_value*

    启用 MySQL 安装程序以具有或不具有互联网功能运行。有效模式包括:

    • True 以启用离线模式(无需互联网连接运行)。

    • False(默认)以禁用离线模式(需要互联网连接运行)。在下载产品目录或任何要安装的产品之前设置此模式。

    --proxy-mode

    指定代理模式。有效模式包括:

    • Automatic 以根据系统设置自动识别代理。

    • None 以确保未配置代理。

    • Manual 手动设置代理详细信息(--proxy-server--proxy-port--proxy-username--proxy-password)。

    --proxy-password

    用于认证到代理服务器的密码。

    --proxy-port

    代理服务器使用的端口。

    --proxy-server

    指向代理服务器的 URL。

    --proxy-username

    用于认证到代理服务器的用户名。

    --reset-defaults

    将与--set操作相关联的 MySQL Installer 选项重置为默认值。

    示例:

    MySQLIntallerConsole.exe set --reset-defaults
    
    mysqlintallerconsole.exe --set --catalog-update=false
    
    MySQLIntallerConsole --set --catalog-update-days=3
    
    mysqlintallerconsole --set --connection-validation=manual 
    --connection-validation-urls="https://www.bing.com,http://www.google.com"
    
  • [--]status

    提供系统上已安装的 MySQL 产品的快速概述。信息包括产品名称和版本、架构、安装日期和安装位置。

    选项:

    --help

    显示相应操作的选项和可用参数。如果存在,仅显示帮助,不执行操作,因此其他与操作相关的选项也将被忽略。

    示例:

    MySQLInstallerConsole status
    
  • [--]update

    将最新的 MySQL 产品目录下载到您的系统。成功后,目录将在下次执行MySQLInstallerMySQLInstallerConsole.exe时应用。

    当距离上次检查已经过去n天时,MySQL Installer 在启动时会自动检查产品目录更新。从 MySQL Installer 1.6.4 开始,默认值为 1 天。之前的默认值为 7 天。

    选项:

    --help

    显示相应操作的选项和可用参数。如果存在,仅显示帮助,不执行操作,因此其他与操作相关的选项也将被忽略。

    示例:

    MySQLInstallerConsole update
    
  • [--]upgrade [*product1*:*version*], [*product2*:*version*] [*...*]

    升级系统上的一个或多个产品。此操作允许使用以下字符:

    *

    传入*以将所有产品升级到最新版本,或传入特定产品。

    !

    !作为版本号传入,将 MySQL 产品升级到最新版本。

    选项:

    --continue

    继续操作,即使发生错误。

    --help

    显示相应操作的选项和可用参数。如果存在,仅显示帮助,不执行操作,因此其他与操作相关的选项也将被忽略。

    --mos-password=*password*

    设置商业版本 MySQL Installer 的 My Oracle Support (MOS) 用户密码。

    --mos-user=*user_name*

    指定用于访问 MySQL Installer 商业版本的 My Oracle Support (MOS) 用户名称。如果不存在,只有捆绑包中的产品可供安装。

    --silent

    禁用确认提示。

    示例:

    MySQLInstallerConsole upgrade *
    
    MySQLInstallerConsole upgrade workbench:8.0.31
    
    MySQLInstallerConsole upgrade workbench:!
    
    MySQLInstallerConsole --upgrade server;8.0.30:!, j;8.0.29:!
    

2.3.4 在 Microsoft Windows 上使用 noinstall ZIP 存档安装 MySQL

原文:dev.mysql.com/doc/refman/8.0/en/windows-install-archive.html

2.3.4.1 提取安装存档

2.3.4.2 创建选项文件

2.3.4.3 选择 MySQL 服务器类型

2.3.4.4 初始化数据目录

2.3.4.5 第一次启动服务器

2.3.4.6 从 Windows 命令行启动 MySQL

2.3.4.7 自定义 MySQL 工具的 PATH

2.3.4.8 将 MySQL 作为 Windows 服务启动

2.3.4.9 测试 MySQL 安装

noinstall包安装的用户可以使用本节中的说明手动安装 MySQL。从 ZIP 存档包安装 MySQL 的过程如下:

  1. 将主要存档解压到所需的安装目录

    可选:如果您计划执行 MySQL 基准测试和测试套件,则还可以提取 debug-test 存档

  2. 创建一个选项文件

  3. 选择 MySQL 服务器类型

  4. 初始化 MySQL

  5. 启动 MySQL 服务器

  6. 保护默认用户帐户

该过程将在接下来的章节中描述。

原文:dev.mysql.com/doc/refman/8.0/en/windows-extract-archive.html

2.3.4.1 提取安装存档

要手动安装 MySQL,请执行以下操作:

  1. 如果您正在从以前的版本升级,请在开始升级过程之前参考 Section 3.11, “Upgrading MySQL on Windows”。

  2. 确保您以具有管理员权限的用户登录。

  3. 选择安装位置。传统上,MySQL 服务器安装在C:\mysql中。如果您没有在C:\mysql安装 MySQL,则必须在启动时或在选项文件中指定安装目录的路径。请参阅 Section 2.3.4.2, “Creating an Option File”。

    注意

    MySQL 安装程序将 MySQL 安装在C:\Program Files\MySQL下。

  4. 使用您喜欢的文件压缩工具将安装存档提取到选择的安装位置。一些工具可能会将存档提取到所选安装位置内的一个文件夹中。如果发生这种情况,您可以将子文件夹的内容移动到所选的安装位置。

原文:dev.mysql.com/doc/refman/8.0/en/windows-create-option-file.html

2.3.4.2 创建一个选项文件

如果在运行服务器时需要指定启动选项,可以在命令行中指定它们或将它们放在选项文件中。对于每次服务器启动都使用的选项,最方便的方法可能是使用选项文件来指定 MySQL 配置。特别是在以下情况下:

  • 安装或数据目录位置与默认位置(C:\Program Files\MySQL\MySQL Server 8.0C:\Program Files\MySQL\MySQL Server 8.0\data)不同。

  • 你需要调整服务器设置,比如内存、缓存或 InnoDB 配置信息。

当 MySQL 服务器在 Windows 上启动时,它会在几个位置查找选项文件,比如 Windows 目录、C:\ 和 MySQL 安装目录(有关所有位置的完整列表,请参见第 6.2.2.2 节,“使用选项文件”)。Windows 目录通常被命名为类似C:\WINDOWS的东西。您可以通过以下命令使用WINDIR环境变量的值确定其确切位置:

C:\> echo %WINDIR%

MySQL 首先在每个位置的my.ini文件中查找选项,然后在my.cnf文件中查找。然而,为避免混淆,最好只使用一个文件。如果您的 PC 使用一个引导加载程序,其中C:不是引导驱动器,您唯一的选择是使用my.ini文件。无论使用哪个选项文件,它必须是一个纯文本文件。

注意

在使用 MySQL Installer 安装 MySQL 服务器时,它会在默认位置创建my.ini,并且执行 MySQL Installer 的用户被授予对这个新的my.ini文件的完全权限。

换句话说,确保 MySQL 服务器用户有权限读取my.ini文件。

你也可以利用随 MySQL 发行版附带的示例选项文件;参见第 7.1.2 节,“服务器配置默认值”。

选项文件可以使用任何文本编辑器创建和修改,比如记事本。例如,如果 MySQL 安装在E:\mysql,数据目录在E:\mydata\data,你可以创建一个包含[mysqld]部分以指定basedirdatadir选项值的选项文件:

[mysqld]
# set basedir to your installation path
basedir=E:/mysql
# set datadir to the location of your data directory
datadir=E:/mydata/data

Microsoft Windows 路径名在选项文件中使用(正斜杠)而不是反斜杠。如果使用反斜杠,需要双写:

[mysqld]
# set basedir to your installation path
basedir=E:\\mysql
# set datadir to the location of your data directory
datadir=E:\\mydata\\data

有关选项文件值中反斜杠使用规则,请参见第 6.2.2.2 节,“使用选项文件”。

ZIP 归档文件不包括data目录。要通过创建数据目录并填充 mysql 系统数据库中的表来初始化 MySQL 安装,请使用--initialize--initialize-insecure。有关更多信息,请参见 Section 2.9.1,“初始化数据目录”。

如果您想要在不同位置使用数据目录,您应该将data目录的所有内容复制到新位置。例如,如果您想要将E:\mydata作为数据目录,您必须执行两项操作:

  1. 将整个data目录及其所有内容从默认位置(例如C:\Program Files\MySQL\MySQL Server 8.0\data)移动到E:\mydata

  2. 每次启动服务器时使用--datadir选项指定新数据目录位置。

原文:dev.mysql.com/doc/refman/8.0/en/windows-select-server.html

2.3.4.3 选择 MySQL 服务器类型

以下表显示了 MySQL 8.0 中 Windows 可用的服务器。

二进制 描述
mysqld 优化的二进制文件,支持命名管道
mysqld-debug 类似于mysqld,但编译时带有完整调试和自动内存分配检查

所有前述的二进制文件都针对现代 Intel 处理器进行了优化,但应该在任何 Intel i386 级别或更高级别的处理器上运行。

发行版中的每个服务器都支持相同的存储引擎。SHOW ENGINES语句显示给定服务器支持哪些引擎。

所有 Windows MySQL 8.0 服务器都支持数据库目录的符号链接。

MySQL 在所有 Windows 平台上支持 TCP/IP。如果您启动具有named_pipe系统变量启用的服务器,则 Windows 上的 MySQL 服务器还支持命名管道。必须显式启用此变量,因为一些用户在使用命名管道时关闭 MySQL 服务器时遇到问题。默认情况下,无论平台如何,都使用 TCP/IP,因为在许多 Windows 配置中,命名管道比 TCP/IP 慢。

原文:dev.mysql.com/doc/refman/8.0/en/windows-initialize-data-directory.html

2.3.4.4 初始化数据目录

如果您使用noinstall包安装了 MySQL,则不包含数据目录。要初始化数据目录,请使用第 2.9.1 节,“初始化数据目录”中的说明。

原文:dev.mysql.com/doc/refman/8.0/en/windows-server-first-start.html

2.3.4.5 首次启动服务器

本节概述了启动 MySQL 服务器的一般概况。以下各节提供了更具体的信息,用于从命令行启动 MySQL 服务器或作为 Windows 服务。

这里的信息主要适用于使用noinstall版本安装 MySQL,或者如果您希望手动配置和测试 MySQL 而不是使用 MySQL 安装程序。

这些部分中的示例假定 MySQL 安装在默认位置C:\Program Files\MySQL\MySQL Server 8.0下。如果您将 MySQL 安装在其他位置,请调整示例中显示的路径名。

客户端有两个选项。他们可以使用 TCP/IP,或者如果服务器支持命名管道连接,他们可以使用命名管道。

对于 Windows 的 MySQL 还支持共享内存连接,如果服务器启用了shared_memory系统变量。客户端可以通过使用--protocol=MEMORY选项通过共享内存连接。

有关要运行哪个服务器二进制文件的信息,请参阅 Section 2.3.4.3, “Selecting a MySQL Server Type”。

最好从控制台窗口的命令提示符中进行测试(或“DOS 窗口”)。这样,您可以在易于查看的窗口中让服务器显示状态消息。如果您的配置有问题,这些消息将使您更容易识别和解决任何问题。

注意

必须在启动 MySQL 之前初始化数据库。有关初始化过程的其他信息,请参阅 Section 2.9.1, “Initializing the Data Directory”。

要启动服务器,请输入以下命令:

C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld" --console

当服务器启动时,您应该看到类似以下的消息(路径名和大小可能不同)。ready for connections消息表示服务器已准备好为客户端连接提供服务。

[Server] C:\mysql\bin\mysqld.exe (mysqld 8.0.30) starting as process 21236
[InnoDB] InnoDB initialization has started.
[InnoDB] InnoDB initialization has ended.
[Server] CA certificate ca.pem is self signed.
[Server] Channel mysql_main configured to support TLS. 
Encrypted connections are now supported for this channel.
[Server] X Plugin ready for connections. Bind-address: '::' port: 33060
[Server] C:\mysql\bin\mysqld.exe: ready for connections. 
Version: '8.0.30'  socket: ''  port: 3306  MySQL Community Server - GPL.

您现在可以打开一个新的控制台窗口来运行客户端程序。

如果省略--console选项,服务器将将诊断输出写入数据目录中的错误日志(默认为C:\Program Files\MySQL\MySQL Server 8.0\data)。错误日志是扩展名为.err的文件,并且可以使用--log-error选项进行设置。

注意

MySQL 授权表中的初始root账户没有密码。启动服务器后,您应该按照 Section 2.9.4, “Securing the Initial MySQL Account”中的说明为其设置密码。

原文:dev.mysql.com/doc/refman/8.0/en/windows-start-command-line.html

2.3.4.6 从 Windows 命令行启动 MySQL

MySQL 服务器可以从命令行手动启动。这可以在任何版本的 Windows 上完成。

要从命令行启动mysqld服务器,您应该启动控制台窗口(或“DOS 窗口”)并输入此命令:

C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld"

mysqld的路径可能会根据系统上 MySQL 的安装位置而有所不同。

您可以通过执行此命令来停止 MySQL 服务器:

C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqladmin" -u root shutdown

注意

如果 MySQL root用户帐户有密码,则需要使用-p选项调用mysqladmin并在提示时提供密码。

此命令调用 MySQL 管理实用程序mysqladmin连接到服务器并告诉其关闭。该命令以 MySQL root用户身份连接,这是 MySQL 授权系统中的默认管理帐户。

注意

MySQL 授权系统中的用户与 Microsoft Windows 下的任何操作系统用户完全独立。

如果mysqld无法启动,请检查错误日志,看看服务器是否在那里写入任何消息以指示问题的原因。默认情况下,错误日志位于C:\Program Files\MySQL\MySQL Server 8.0\data目录中。它是带有.err后缀的文件,或者可以通过传递--log-error选项来指定。或者,您可以尝试使用--console选项启动服务器;在这种情况下,服务器可能会在屏幕上显示一些有用的信息以帮助解决问题。

最后一个选项是使用--standalone--debug选项启动mysqld。在这种情况下,mysqld会写入一个日志文件C:\mysqld.trace,其中应包含mysqld无法启动的原因。参见第 7.9.4 节,“DBUG 包”。

使用mysqld --verbose --help显示mysqld支持的所有选项。

原文:dev.mysql.com/doc/refman/8.0/en/mysql-installation-windows-path.html

2.3.4.7 自定义 MySQL 工具的 PATH

警告

当手动编辑系统PATH时,您必须非常小心;意外删除或修改现有PATH值的任何部分可能导致系统发生故障,甚至无法使用。

为了更容易调用 MySQL 程序,您可以将 MySQL bin 目录的路径名添加到您的 Windows 系统 PATH 环境变量中:

  • 在 Windows 桌面上,右键单击“我的电脑”图标,然后选择“属性”。

  • 接下来,从出现的“系统属性”菜单中选择“高级”选项卡,然后单击“环境变量”按钮。

  • 在“系统变量”下,选择“Path”,然后单击“编辑”按钮。应该会出现“编辑系统变量”对话框。

  • 将光标放在标有“变量值”的空格中显示的文本末尾。(使用 End 键确保光标位于此空格中文本的最末尾。)然后输入您的 MySQL bin 目录的完整路径名(例如,C:\Program Files\MySQL\MySQL Server 8.0\bin

    注意

    在此路径与该字段中的任何值之间必须有一个分号分隔。

    通过单击“确定”来关闭此对话框,然后依次关闭每个对话框,直到所有打开的对话框都被关闭。新的PATH值现在应该对您打开的任何新命令 shell 可用,允许您在系统上的任何目录中键入其名称以在 DOS 提示符下调用任何 MySQL 可执行程序,而无需提供路径。这包括服务器、mysql 客户端以及所有 MySQL 命令行实用程序,如 mysqladminmysqldump

如果您在同一台机器上运行多个 MySQL 服务器,则不应将 MySQL bin 目录添加到您的 Windows PATH 中。

原文:dev.mysql.com/doc/refman/8.0/en/windows-start-service.html

2.3.4.8 在 Windows 上启动 MySQL 作为服务

在 Windows 上,运行 MySQL 的推荐方式是将其安装为 Windows 服务,这样当 Windows 启动和停止时,MySQL 也会自动启动和停止。安装为服务的 MySQL 服务器也可以使用NET命令或图形服务实用程序从命令行进行控制。通常,要将 MySQL 安装为 Windows 服务,您应该使用具有管理员权限的帐户登录。

服务实用程序(Windows 服务控制管理器)可以在 Windows 控制面板中找到。为了避免冲突,在执行服务器安装或从命令行执行删除操作时,建议关闭服务实用程序。

安装服务

在将 MySQL 安装为 Windows 服务之前,如果当前服务器正在运行,您应该首先使用以下命令停止当前服务器:

C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqladmin"
          -u root shutdown

注意

如果 MySQL root 用户帐户有密码,您需要使用 -p 选项调用 mysqladmin 并在提示时提供密码。

此命令调用 MySQL 管理实用程序 mysqladmin 连接到服务器并告诉它关闭。该命令连接为 MySQL root 用户,这是 MySQL 授权系统中的默认管理帐户。

注意

MySQL 授权系统中的用户与 Windows 下的任何操作系统用户完全独立。

使用以下命令将服务器安装为服务:

C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld" --install

服务安装命令不会启动服务器。关于如何启动服务器的说明稍后在本节中给出。

为了更容易调用 MySQL 程序,您可以将 MySQL bin 目录的路径名添加到您的 Windows 系统 PATH 环境变量中:

  • 在 Windows 桌面上,右键单击“我的电脑”图标,然后选择“属性”。

  • 接下来,从出现的系统属性菜单中选择“高级”选项卡,然后点击“环境变量”按钮。

  • 在“系统变量”下,选择“Path”,然后点击“编辑”按钮。应该会出现“编辑系统变量”对话框。

  • 将光标放在标记为变量值的空格中显示的文本末尾。(使用End键确保光标位于此空格中文本的末尾。)然后输入您的 MySQL bin目录的完整路径名(例如,C:\Program Files\MySQL\MySQL Server 8.0\bin),并且此路径与此字段中存在的任何值之间应有一个分号分隔。关闭此对话框,以及依次关闭每个对话框,直到打开的所有对话框都已关闭。现在,您应该能够在系统上的任何目录中键入其名称来调用任何 MySQL 可执行程序,而无需提供路径。这包括服务器、mysql客户端以及所有 MySQL 命令行实用程序,如mysqladminmysqldump

    如果您在同一台计算机上运行多个 MySQL 服务器,则不应将 MySQL bin目录添加到 Windows PATH中。

警告

当手动编辑系统PATH时,务必要非常小心;意外删除或修改现有PATH值的任何部分都可能导致系统发生故障,甚至无法使用。

安装服务时可以使用以下附加参数:

  • 您可以在--install选项后立即指定服务名称。默认服务名称是MySQL

  • 如果给出了服务名称,则可以跟随一个选项。按照惯例,这应该是--defaults-file=*file_name*,以指定服务器启动时应从中读取选项的选项文件的名称。

    可以使用除--defaults-file之外的单个选项,但不建议这样做。--defaults-file更灵活,因为它允许您通过将它们放在命名的选项文件中来指定服务器的多个启动选项。

  • 您还可以在服务名称后面指定--local-service选项。这将导致服务器使用具有有限系统特权的LocalService Windows 帐户运行。如果在服务名称后面给出了--defaults-file--local-service,它们可以以任何顺序出现。

对于作为 Windows 服务安装的 MySQL 服务器,以下规则确定服务器使用的服务名称和选项文件:

  • 如果服务安装命令未指定服务名称或在--install选项后跟随默认服务名称(MySQL),服务器将使用MySQL的服务名称,并从标准选项文件中的[mysqld]组中读取选项。

  • 如果服务安装命令在 --install 选项后指定了除 MySQL 之外的服务名称,则服务器将使用该服务名称。它从标准选项文件中的 [mysqld] 组和与服务名称相同的组中读取选项。这使您可以使用 [mysqld] 组来设置所有 MySQL 服务都应使用的选项,并使用具有服务名称的选项组来为使用该服务名称安装的服务器使用选项。

  • 如果服务安装命令在服务名称之后指定了 --defaults-file 选项,则服务器将按照前一项描述的方式读取选项,只是它只从命名文件中读取选项,而忽略标准选项文件。

作为更复杂的示例,请考虑以下命令:

C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld"
          --install MySQL --defaults-file=C:\my-opts.cnf

在这里,--install 选项后给出了默认服务名称(MySQL)。如果没有给出 --defaults-file 选项,此命令将导致服务器从标准选项文件中读取 [mysqld] 组。然而,由于存在 --defaults-file 选项,服务器将从 [mysqld] 选项组中读取选项,而且只从命名文件中读取。

注意

在 Windows 上,如果使用 --defaults-file--install 选项启动服务器,则必须首先使用 --install。否则,mysqld.exe 将尝试启动 MySQL 服务器。

您还可以在启动 MySQL 服务之前在 Windows 服务 实用程序中将选项指定为启动参数。

最后,在尝试启动 MySQL 服务之前,请确保操作系统用户的用户变量 %TEMP%%TMP%(以及 %TMPDIR%,如果曾经设置过)指向用户具有写入权限的文件夹。运行 MySQL 服务的默认用户是 LocalSystem,其 %TEMP%%TMP% 的默认值是 C:\Windows\TempLocalSystem 默认具有写入权限。然而,如果对默认设置进行了任何更改(例如,更改运行服务的用户或提到的用户变量,或使用 --tmpdir 选项将临时目录放在其他位置),MySQL 服务可能无法运行,因为未授予适当用户对临时目录的写入权限。

启动服务

安装为服务后,每当 Windows 启动时,Windows 会自动启动 MySQL 服务器实例。也可以立即从Services实用程序启动服务,或使用sc start mysqld_service_nameNET START mysqld_service_name命令启动服务。SCNET命令不区分大小写。

当作为服务运行时,mysqld无法访问控制台窗口,因此无法在那里看到任何消息。如果mysqld无法启动,请检查错误日志,查看服务器是否在那里写入任何消息以指示问题的原因。错误日志位于 MySQL 数据目录中(例如,C:\Program Files\MySQL\MySQL Server 8.0\data)。它是带有后缀.err的文件。

当 MySQL 服务器安装为服务且服务正在运行时,Windows 在关闭 Windows 时会自动停止服务。也可以使用Services实用程序、sc stop mysqld_service_name命令、NET STOP mysqld_service_name命令或mysqladmin shutdown命令手动停止服务器。

如果您不希望服务在启动过程中自动启动,还可以选择将服务器安装为手动服务。要做到这一点,请使用--install-manual选项而不是--install选项:

C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld" --install-manual
移除服务

要删除安装为服务的服务器,首先停止正在运行的服务器,执行SC STOP mysqld_service_nameNET STOP mysqld_service_name。然后使用SC DELETE mysqld_service_name来删除它:

C:\> SC DELETE mysql

或者,使用mysqld--remove选项来移除服务。

C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld" --remove

如果mysqld未作为服务运行,则可以从命令行启动它。有关说明,请参阅第 2.3.4.6 节,“从 Windows 命令行启动 MySQL”。

如果在安装过程中遇到困难,请参阅第 2.3.5 节,“解决 Microsoft Windows MySQL 服务器安装问题”。

有关停止或移除 Windows 服务的更多信息,请参阅第 7.8.2.2 节,“将多个 MySQL 实例作为 Windows 服务启动”。

译文:dev.mysql.com/doc/refman/8.0/en/windows-testing.html

2.3.4.9 测试 MySQL 安装

您可以通过执行以下任何命令来测试 MySQL 服务器是否正常工作:

C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqlshow"
C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqlshow" -u root mysql
C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqladmin" version status proc
C:\> "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql" test

如果mysqld对来自客户端程序的 TCP/IP 连接响应缓慢,则您的 DNS 可能存在问题。在这种情况下,启动mysqld时启用skip_name_resolve系统变量,并且在 MySQL 授权表的Host列中仅使用localhost和 IP 地址。(确保存在指定 IP 地址的账户,否则可能无法连接。)

您可以通过指定--pipe--protocol=PIPE选项,或通过将.(句点)作为主机名来强制 MySQL 客户端使用命名管道连接而不是 TCP/IP。如果您不想使用默认管道名称,请使用--socket选项指定管道的名称。

如果您已为root账户设置了密码,删除了匿名账户,或创建了新用户账户,则连接到 MySQL 服务器时必须使用先前显示的命令和适当的-u-p选项。请参阅第 6.2.4 节,“使用命令选项连接到 MySQL 服务器”。

有关mysqlshow的更多信息,请参阅第 6.5.7 节,“mysqlshow — 显示数据库、表和列信息”。

2.3.5 解决 Microsoft Windows MySQL 服务器安装问题

原文:dev.mysql.com/doc/refman/8.0/en/windows-troubleshooting.html

第一次安装和运行 MySQL 时,您可能会遇到一些错误,导致 MySQL 服务器无法启动。本节帮助您诊断和纠正其中一些错误。

在解决服务器问题时,您的第一个资源是错误日志。MySQL 服务器使用错误日志记录与阻止服务器启动的错误相关的信息。错误日志位于您的my.ini文件中指定的数据目录中。默认数据目录位置为C:\Program Files\MySQL\MySQL Server 8.0\data,或者在 Windows 7 和 Windows Server 2008 上为C:\ProgramData\MysqlC:\ProgramData目录默认为隐藏。您需要更改文件夹选项才能查看目录和内容。有关错误日志和内容理解的更多信息,请参阅 Section 7.4.2, “The Error Log”。

有关可能错误的信息,还请查看在启动 MySQL 服务时显示的控制台消息。在将mysqld安装为服务后,使用命令行中的SC START mysqld_service_nameNET START mysqld_service_name命令查看有关启动 MySQL 服务器作为服务时的任何错误消息。请参阅 Section 2.3.4.8, “Starting MySQL as a Windows Service”。

以下示例显示您在首次安装 MySQL 并启动服务器时可能遇到的其他常见错误消息:

  • 如果 MySQL 服务器无法找到mysql权限数据库或其他关键文件,则会显示以下消息:

    System error 1067 has occurred.
    Fatal error: Can't open and lock privilege tables:
    Table 'mysql.user' doesn't exist
    

    当 MySQL 基本或数据目录安装在与默认位置(分别为C:\Program Files\MySQL\MySQL Server 8.0C:\Program Files\MySQL\MySQL Server 8.0\data)不同的位置时,通常会出现���些消息。

    当 MySQL 升级并安装到新位置时,可能会出现这种情况,但配置文件没有更新以反映新位置。此外,旧配置文件和新配置文件可能会发生冲突。在升级 MySQL 时,请务必删除或重命名任何旧配置文件。

    如果您将 MySQL 安装到除C:\Program Files\MySQL\MySQL Server 8.0之外的目录,请通过使用配置(my.ini)文件确保 MySQL 服务器知道这一点。将my.ini文件放在您的 Windows 目录中,通常为C:\WINDOWS。要根据WINDIR环境变量的值确定其确切位置,请从命令提示符中发出以下命令:

    C:\> echo %WINDIR%
    

    你可以使用任何文本编辑器(如记事本)创建或修改选项文件。例如,如果 MySQL 安装在 E:\mysql,数据目录是 D:\MySQLdata,你可以创建选项文件并设置 [mysqld] 部分以指定 basedirdatadir 选项的值:

    [mysqld]
    # set basedir to your installation path
    basedir=E:/mysql
    # set datadir to the location of your data directory
    datadir=D:/MySQLdata
    

    Microsoft Windows 路径名在选项文件中使用(正斜杠)而不是反斜杠。如果使用反斜杠,请将其双写:

    [mysqld]
    # set basedir to your installation path
    basedir=C:\\Program Files\\MySQL\\MySQL Server 8.0
    # set datadir to the location of your data directory
    datadir=D:\\MySQLdata
    

    在选项文件值中使用反斜杠的规则详见 第 6.2.2.2 节,“使用选项文件”。

    如果在 MySQL 配置文件中更改了 datadir 值,则必须在重新启动 MySQL 服务器之前移动现有 MySQL 数据目录中的内容。

    参见 第 2.3.4.2 节,“创建选项文件”。

  • 如果在先停止和删除现有 MySQL 服务的情况下重新安装或升级 MySQL,并使用 MySQL 安装程序安装 MySQL,则可能会看到此错误:

    Error: Cannot create Windows service for MySql. Error: 0
    

    当配置向导尝试安装服务并发现同名现有服务时会发生这种情况。

    解决此问题的一个方法是在使用配置向导时选择一个不同于 mysql 的服务名称。这样可以正确安装新服务,但会保留过时的服务。虽然这是无害的,最好是删除不再使用的旧服务。

    要永久删除旧的 mysql 服务,请以具有管理员权限的用户在命令行上执行以下命令:

    C:\> SC DELETE mysql
    [SC] DeleteService SUCCESS
    

    如果你的 Windows 版本没有 SC 实用程序,请从 www.microsoft.com/windows2000/techinfo/reskit/tools/existing/delsrv-o.asp 下载 delsrv 实用程序,并使用 delsrv mysql 语法。

2.3.6 Windows 后安装程序

原文:dev.mysql.com/doc/refman/8.0/en/windows-postinstallation.html

存在 GUI 工具可以执行本节描述的大部分任务,包括:

  • MySQL Installer:用于安装和升级 MySQL 产品。

  • MySQL Workbench:管理 MySQL 服务器并编辑 SQL 语句。

如有必要,初始化数据目录并创建 MySQL 授权表。由 MySQL Installer 执行的 Windows 安装操作会自动初始化数据目录。对于从 ZIP 存档包安装,请按照第 2.9.1 节,“初始化数据目录”中描述的步骤初始化数据目录。

关于密码,如果您使用 MySQL Installer 安装了 MySQL,则可能已经为初始的root账户分配了密码。(参见第 2.3.3 节,“Windows 的 MySQL Installer”。)否则,请使用第 2.9.4 节,“保护初始 MySQL 账户”中给出的密码分配过程。

在分配密码之前,您可能希望尝试运行一些客户端程序,以确保您可以连接到服务器并且它正常运行。确保服务器正在运行(参见第 2.3.4.5 节,“首次启动服务器”)。您还可以设置一个 MySQL 服务,该服务在 Windows 启动时自动运行(参见第 2.3.4.8 节,“将 MySQL 设置为 Windows 服务”)。

这些说明假定您当前的位置是 MySQL 安装目录,并且该目录包含一个bin子目录,其中包含此处使用的 MySQL 程序。如果不是这样,请相应调整命令路径名称。

如果您使用 MySQL Installer 安装了 MySQL(参见第 2.3.3 节,“Windows 的 MySQL Installer”),默认安装目录是C:\Program Files\MySQL\MySQL Server 8.0

C:\> cd "C:\Program Files\MySQL\MySQL Server 8.0"

从 ZIP 存档包安装的常见安装位置是C:\mysql

C:\> cd C:\mysql

或者,将bin目录添加到您的PATH环境变量设置中。这样可以使您的命令解释器正确找到 MySQL 程序,因此您可以通过仅输入程序名称而不是路径名称来运行程序。请参见第 2.3.4.7 节,“自定义 MySQL 工具的 PATH”。

运行服务器后,发出以下命令以验证您可以从服务器检索信息。输出应该类似于这里显示的内容。

使用mysqlshow查看存在哪些数据库:

C:\> bin\mysqlshow
+--------------------+
|     Databases      |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

安装的数据库列表可能有所不同,但始终至少包括mysqlinformation_schema

如果不存在正确的 MySQL 帐户,则前面的命令(以及其他 MySQL 程序的命令,如mysql)可能无法正常工作。例如,程序可能会出现错误,或者您可能无法查看所有数据库。如果使用 MySQL Installer 安装 MySQL,则root用户会自动创建,并使用您提供的密码。在这种情况下,您应该使用-u root-p选项。(如果您已经保护了初始的 MySQL 帐户,则必须使用这些选项。)使用-p,客户端程序会提示输入root密码。例如:

C:\> bin\mysqlshow -u root -p
Enter password: *(enter root password here)* +--------------------+
|     Databases      |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

如果指定数据库名称,mysqlshow会显示数据库中的表列表:

C:\> bin\mysqlshow mysql
Database: mysql
+---------------------------+
|          Tables           |
+---------------------------+
| columns_priv              |
| component                 |
| db                        |
| default_roles             |
| engine_cost               |
| func                      |
| general_log               |
| global_grants             |
| gtid_executed             |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| innodb_index_stats        |
| innodb_table_stats        |
| ndb_binlog_index          |
| password_history          |
| plugin                    |
| procs_priv                |
| proxies_priv              |
| role_edges                |
| server_cost               |
| servers                   |
| slave_master_info         |
| slave_relay_log_info      |
| slave_worker_info         |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+

使用mysql程序从mysql数据库中的表中选择信息:

C:\> bin\mysql -e "SELECT User, Host, plugin FROM mysql.user" mysql
+------+-----------+-----------------------+
| User | Host      | plugin                |
+------+-----------+-----------------------+
| root | localhost | caching_sha2_password |
+------+-----------+-----------------------+

有关mysqlmysqlshow的更多信息,请参见 Section 6.5.1, “mysql — The MySQL Command-Line Client”,以及 Section 6.5.7, “mysqlshow — Display Database, Table, and Column Information”。

2.3.7 Windows 平台限制

原文:dev.mysql.com/doc/refman/8.0/en/windows-restrictions.html

在 Windows 平台上使用 MySQL 时,有以下限制:

  • 进程内存

    在 Windows 32 位平台上,默认情况下无法在单个进程中使用超过 2GB 的 RAM,包括 MySQL。这是因为 Windows 32 位的物理地址限制为 4GB,而 Windows 的默认设置是在内核(2GB)和用户/应用程序(2GB)之间分割虚拟地址空间。

    一些 Windows 版本在启动时设置以通过减少内核应用程序来启用更大的应用程序。或者,要使用超过 2GB,请使用 64 位版本的 Windows。

  • 文件系统别名

    在使用 MyISAM 表时,不能在 Windows 中使用别名链接到另一个卷上的数据文件,然后再链接回主 MySQL datadir 位置。

    这个功能通常用于将数据和索引文件移动到 RAID 或其他快速解决方案。

  • 有限的端口数量

    Windows 系统有大约 4,000 个端口可用于客户端连接,当端口上的连接关闭后,需要两到四分钟才能重新使用该端口。在客户端与服务器之间以高速率连接和断开的情况下,可能会在关闭的端口再次可用之前用尽所有可用端口。如果发生这种情况,MySQL 服务器看起来无响应,尽管它正在运行。端口也可能被机器上运行的其他应用程序使用,这种情况下,可供 MySQL 使用的端口数量较低。

    有关此问题的更多信息,请参见 support.microsoft.com/kb/196271

  • DATA DIRECTORYINDEX DIRECTORY

    CREATE TABLE 语句的 DATA DIRECTORY 子句仅支持 Windows 上的 InnoDB 表,如 Section 17.6.1.2, “Creating Tables Externally” 中所述。对于 MyISAM 和其他存储引擎,在 Windows 和其他具有非功能性 realpath() 调用的平台上,CREATE TABLEDATA DIRECTORYINDEX DIRECTORY 子句将被忽略。

  • DROP DATABASE

    你不能删除另一个会话正在使用的数据库。

  • 不区分大小写的名称

    Windows 系统上的文件名不区分大小写,因此 MySQL 数据库和表名在 Windows 上也不区分大小写。唯一的限制是数据库和表名必须在给定语句中始终使用相同的大小写。参见 Section 11.2.3, “Identifier Case Sensitivity”。

  • 目录和文件名

    在 Windows 上,MySQL 服务器仅支持与当前 ANSI 代码页兼容的目录和文件名。例如,以下日文目录名在西方区域设置(代码页 1252)中无法使用:

    datadir="C:/私たちのプロジェクトのデータ"
    

    相同的限制也适用于 SQL 语句中引用的目录和文件名,比如LOAD DATA中的数据文件路径名。

  • 路径名分隔符 \ 字符

    Windows 中的路径名组件由 \ 字符分隔,这也是 MySQL 中的转义字符。如果你正在使用LOAD DATASELECT ... INTO OUTFILE,请使用带有 / 字符的 Unix 风格文件名:

    mysql> LOAD DATA INFILE 'C:/tmp/skr.txt' INTO TABLE skr;
    mysql> SELECT * INTO OUTFILE 'C:/tmp/skr.txt' FROM skr;
    

    或者,你必须将 \ 字符加倍:

    mysql> LOAD DATA INFILE 'C:\\tmp\\skr.txt' INTO TABLE skr;
    mysql> SELECT * INTO OUTFILE 'C:\\tmp\\skr.txt' FROM skr;
    
  • 管道问题

    从 Windows 命令行提示符中,管道无法可靠工作。如果管道包含字符 ^Z / CHAR(24),Windows 认为已经遇到文件结尾并中止程序。

    当你尝试应用二进制日志时,这主要是一个问题:

    C:\> mysqlbinlog *binary_log_file* | mysql --user=root
    

    如果你在应用日志时遇到问题,并怀疑是因为 ^Z / CHAR(24) 字符,你可以使用以下解决方法:

    C:\> mysqlbinlog *binary_log_file* --result-file=/tmp/bin.sql
    C:\> mysql --user=root --execute "source /tmp/bin.sql"
    

    后一条命令也可用于可靠地读取可能包含二进制数据的任何 SQL 文件。

2.4 在 macOS 上安装 MySQL

原文:dev.mysql.com/doc/refman/8.0/en/macos-installation.html

2.4.1 在 macOS 上安装 MySQL 的一般注意事项

2.4.2 使用本机软件包在 macOS 上安装 MySQL

2.4.3 安装和使用 MySQL 启动守护程序

2.4.4 安装和使用 MySQL 首选项窗格

有关 MySQL 服务器支持的 macOS 版本列表,请参阅 www.mysql.com/support/supportedplatforms/database.html

macOS 上的 MySQL 可以以多种不同形式使用:

  • 本机软件包安装程序,使用本机 macOS 安装程序(DMG)引导您完成 MySQL 的安装过程。有关更多信息,请参阅 第 2.4.2 节,“使用本机软件包在 macOS 上安装 MySQL”。您可以在 macOS 上使用软件包安装程序。执行安装的用户必须具有管理员权限。

  • 压缩的 TAR 存档,使用 Unix 的 targzip 命令打包的文件。要使用这种方法,您需要打开一个 终端 窗口。使用此方法不需要管理员权限;您可以在任何地方安装 MySQL 服务器。有关使用此方法的更多信息,您可以使用通用的 tarball 使用说明,第 2.2 节,“在 Unix/Linux 上使用通用二进制文件安装 MySQL”。

    除了核心安装外,软件包安装程序还包括 第 2.4.3 节,“安装和使用 MySQL 启动守护程序” 和 第 2.4.4 节,“安装和使用 MySQL 首选项窗格”,以简化您的安装管理。

有关在 macOS 上使用 MySQL 的其他信息,请参阅 第 2.4.1 节,“在 macOS 上安装 MySQL 的一般注意事项”。

2.4.1 在 macOS 上安装 MySQL 的一般注意事项

原文:dev.mysql.com/doc/refman/8.0/en/macos-installation-notes.html

您应该牢记以下问题和注意事项:

  • 其他 MySQL 安装:安装过程不识别 Homebrew 等软件包管理器安装的 MySQL。安装和升级过程适用于我们提供的 MySQL 软件包。如果存在其他安装,请考虑在执行此安装程序之前停止它们,以避免端口冲突。

    Homebrew:例如,如果您使用 Homebrew 将 MySQL Server 安装到默认位置,则 MySQL 安装程序将安装到不同位置,并且不会升级 Homebrew 中的版本。在这种情况下,您将拥有多个 MySQL 安装,这些安装默认情况下会尝试使用相同的端口。在运行此安装程序之前,请停止其他 MySQL Server 实例,例如执行brew services stop mysql来停止 Homebrew 的 MySQL 服务。

  • Launchd:安装了一个 launchd 守护程序,用于更改 MySQL 配置选项。如有需要,请考虑编辑它,有关更多信息,请参阅下面的文档。此外,macOS 10.10 删除了启动项支持,改为使用 launchd 守护程序。macOS 系统偏好设置下的可选 MySQL 首选项窗格使用 launchd 守护程序。

  • 用户:您可能需要(或想要)创建一个特定的mysql用户来拥有 MySQL 目录和数据。您可以通过Directory Utility来完成这个操作,mysql用户应该已经存在。在单用户模式下使用时,系统/etc/passwd文件中应该已经存在一个_mysql(注意下划线前缀)的条目。

  • 数据:由于 MySQL 软件包安装程序将 MySQL 内容安装到特定版本和平台的目录中,您可以使用此功能在不同版本之间升级和迁移数据库。您需要将旧版本的data目录复制到新版本,或者指定一个替代的datadir值来设置数据目录的位置。默认情况下,MySQL 目录安装在/usr/local/下。

  • 别名:您可能希望将别名添加到您的 shell 资源文件中,以便更轻松地访问常用程序,例如mysqlmysqladmin。在bash中的语法是:

    alias mysql=/usr/local/mysql/bin/mysql
    alias mysqladmin=/usr/local/mysql/bin/mysqladmin
    

    对于tcsh,使用:

    alias mysql /usr/local/mysql/bin/mysql
    alias mysqladmin /usr/local/mysql/bin/mysqladmin
    

    更好的做法是将/usr/local/mysql/bin添加到您的PATH环境变量中。您可以通过修改适合您的 shell 的相应启动文件来实现这一点。有关更多信息,请参阅 Section 6.2.1, “Invoking MySQL Programs”。

  • 移除:在您已经从先前安装中复制了 MySQL 数据库文件并成功启动了新服务器之后,您应该考虑移除旧安装文件以节省磁盘空间。此外,您还应该移除位于/Library/Receipts/mysql-*VERSION*.pkg目录中的旧版本软件包安装目录。

2.4.2 使用本机软件包在 macOS 上安装 MySQL

原文:dev.mysql.com/doc/refman/8.0/en/macos-installation-pkg.html

软件包位于一个磁盘映像(.dmg)文件中,您需要通过在“查找器”中双击其图标来挂载它。然后应该会挂载该映像并显示其内容。

注意

在继续安装之前,请确保通过使用 MySQL 管理应用程序(在 macOS 服务器上)、首选项面板或命令行上的mysqladmin shutdown停止所有正在运行的 MySQL 服务器实例。

要使用软件包安装程序安装 MySQL:

  1. 下载包含 MySQL 软件包安装程序的磁盘映像(.dmg)文件(社区版可在此处下载)。双击文件以挂载磁盘映像并查看其内容。

    从磁盘双击 MySQL 安装程序包。它的名称根据您下载的 MySQL 版本而定。例如,对于 MySQL 服务器 8.0.36,它的名称可能是mysql-8.0.36-macos-*10.13-x86_64*.pkg

  2. 初始向导介绍屏幕引用了要安装的 MySQL 服务器版本。点击“继续”开始安装。

    MySQL 社区版显示了相关 GNU 通用公共许可证的副本。点击“继续”,然后同意继续。

  3. 从“安装类型”页面,您可以点击“安装”以使用所有默认设置执行安装向导,点击“自定义”以更改要安装的组件(MySQL 服务器、MySQL 测试、首选项面板、Launchd 支持 -- 默认情况下启用所有组件,除了 MySQL 测试)。

    注意

    尽管“更改安装位置”选项可见,但安装位置无法更改。

    图 2.13 MySQL 软件包安装向导:安装类型

    内容在周围的文本中描述。

    图 2.14 MySQL 软件包安装向导:自定义

    自定义显示三个软件包名称选项:MySQL 服务器、MySQL 测试、首选项面板和 Launchd 支持。所有三个选项都已被选中。

  4. 点击“安装”以安装 MySQL 服务器。如果正在升级当前的 MySQL 服务器安装,则安装过程到此结束,否则按照向导的额外配置步骤为新的 MySQL 服务器安装进行操作。

  5. 安装成功后,通过选择密码的默认加密类型、定义根密码,以及在启动时启用(或禁用)MySQL 服务器来完成配置步骤。

  6. 默认的 MySQL 8.0 密码机制是caching_sha2_password(强),此步骤允许您将其更改为mysql_native_password(传统)。

    图 2.15 MySQL 软件包安装向导:选择密码加密类型

    大部分内容在周围的文本中描述。安装程序将 caching_sha2_password 称为“使用强密码加密”,将 mysql_native_password 称为“使用传统密码加密”。

    选择传统密码机制会修改生成的 launchd 文件,将 --default_authentication_plugin=mysql_native_password 设置为 ProgramArguments 下的值。选择强密码加密不会设置 --default_authentication_plugin,因为使用的是默认的 MySQL 服务器值,即 caching_sha2_password

  7. 为 root 用户定义密码,并切换 MySQL 服务器是否在配置步骤完成后启动。

    图 2.16 MySQL 包安装向导:定义根密码

    内容在周围的文本中描述。

  8. 摘要是最后一步,指的是成功和完整的 MySQL 服务器安装。关闭向导。

    图 2.17 MySQL 包安装向导:摘要

    显示安装成功,并包含到 MySQL 手册、mysql.com 和 oracle.com 的链接。

MySQL 服务器现在已安装。如果选择不启动 MySQL,则可以使用命令行中的 launchctl 或通过单击 MySQL 首选项面板中的“启动”来启动 MySQL。有关更多信息,请参阅 第 2.4.3 节,“安装和使用 MySQL Launch Daemon” 和 第 2.4.4 节,“安装和使用 MySQL Preference Pane”。使用 MySQL Preference Pane 或 launchd 配置 MySQL 在启动时自动启动。

使用包安装程序安装时,文件将安装到 /usr/local 目录中与安装版本和平台名称匹配的目录中。例如,安装程序文件 mysql-8.0.36-*macos10.15-x86_64.dmg* 将 MySQL 安装到 /usr/local/mysql-8.0.36-macos10.15-x86_64/,并在 /usr/local/mysql 中创建符号链接。以下表格显示了此 MySQL 安装目录的布局。

注意

macOS 安装过程不会创建也不会安装示例 my.cnf MySQL 配置文件。

表 2.7 macOS 上的 MySQL 安装布局

目录 目录内容
bin mysqld 服务器、客户端和实用程序
data 日志文件、数据库,其中 /usr/local/mysql/data/mysqld.local.err 是默认错误日志
docs 帮助文档,如发布说明和构建信息
include 包含(头)文件
lib
man Unix 手册页
mysql-test MySQL 测试套件(在使用安装程序包(DMG)安装过程中,默认情况下会禁用 'MySQL Test')
share 包括错误消息、dictionary.txt 和重写 SQL 等各种支持文件
support-files 支持脚本,如 mysqld_multi.servermysql.servermysql-log-rotate
/tmp/mysql.sock MySQL Unix 套接字的位置
目录 目录内容

2.4.3 安装和使用 MySQL Launch Daemon

原文:dev.mysql.com/doc/refman/8.0/en/macos-installation-launchd.html

macOS 使用 launch 守护程序自动启动、停止和管理进程和应用程序,如 MySQL。

默认情况下,macOS 上的安装包(DMG)会安装一个名为/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist的 launchd 文件,其中包含类似于以下的 plist 定义:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>             <string>com.oracle.oss.mysql.mysqld</string>
    <key>ProcessType</key>       <string>Interactive</string>
    <key>Disabled</key>          <false/>
    <key>RunAtLoad</key>         <true/>
    <key>KeepAlive</key>         <true/>
    <key>SessionCreate</key>     <true/>
    <key>LaunchOnlyOnce</key>    <false/>
    <key>UserName</key>          <string>_mysql</string>
    <key>GroupName</key>         <string>_mysql</string>
    <key>ExitTimeOut</key>       <integer>600</integer>
    <key>Program</key>           <string>/usr/local/mysql/bin/mysqld</string>
    <key>ProgramArguments</key>
        <array>
            <string>/usr/local/mysql/bin/mysqld</string>
            <string>--user=_mysql</string>
            <string>--basedir=/usr/local/mysql</string>
            <string>--datadir=/usr/local/mysql/data</string>
            <string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
            <string>--log-error=/usr/local/mysql/data/mysqld.local.err</string>
            <string>--pid-file=/usr/local/mysql/data/mysqld.local.pid</string>
            <string>--keyring-file-data=/usr/local/mysql/keyring/keyring</string>
            <string>--early-plugin-load=keyring_file=keyring_file.so</string>
        </array>
    <key>WorkingDirectory</key>  <string>/usr/local/mysql</string>
</dict>
</plist>

注意

一些用户报告称,添加一个 plist 的 DOCTYPE 声明会导致 launchd 操作失败,尽管它通过了 lint 检查。我们怀疑这是一个复制粘贴错误。包含上述片段的文件的 md5 校验和为d925f05f6d1b6ee5ce5451b596d6baed

要启用 launchd 服务,您可以选择:

  • 打开 macOS 系统偏好设置,选择 MySQL 偏好设置面板,然后执行启动 MySQL 服务器。

    图 2.18 MySQL 偏好设置窗格:位置

    显示“MySQL”输入到 macOS 系统偏好设置搜索框中,并在 MySQL 偏好设置窗格左下部分突出显示的“MySQL”图标。

    实例页面包括启动或停止 MySQL 的选项,并且初始化数据库会重新创建data/目录。卸载会卸载 MySQL 服务器,以及可选地卸载 MySQL 偏好设置面板和 launchd 信息。

    图 2.19 MySQL 偏好设置窗格:实例

    左侧显示了一个由“活动实例”、“已安装实例”和“数据目录”部分分隔的 MySQL 实例列表。右侧显示了一个“停止 MySQL 服务器”按钮,一个名为“启动时启动 MySQL”的复选框,以及“初始化数据库”和“卸载”按钮。几个字段引用 8.0.11 作为当前安装的 MySQL 版本。

  • 或者,手动加载 launchd 文件。

    $> cd /Library/LaunchDaemons
    $> sudo launchctl load -F com.oracle.oss.mysql.mysqld.plist
    
  • 要配置 MySQL 在启动时自动启动,您可以:

    $> sudo launchctl load -w com.oracle.oss.mysql.mysqld.plist
    

注意

在升级 MySQL 服务器时,launchd 安装过程会删除使用 MySQL 服务器 5.7.7 及以下版本安装的旧启动项。

升级还会替换名为com.oracle.oss.mysql.mysqld.plist的现有 launchd 文件。

附加的 launchd 相关信息:

  • plist 条目会覆盖my.cnf条目,因为它们作为命令行参数传递。有关传递程序选项的更多信息,请参见第 6.2.2 节,“指定程序选项”。

  • ProgramArguments部分定义了传递给程序的命令行选项,在这种情况下是mysqld二进制文件。

  • 默认的 plist 定义是为了更简单的用例而编写的。对于更复杂的设置,您可能希望删除一些参数,而是依赖于 MySQL 配置文件,比如my.cnf

  • 如果你编辑了 plist 文件,在重新安装或升级 MySQL 时取消安装程序选项。否则,你编辑过的 plist 文件会被覆盖,所有编辑都会丢失。

因为默认的 plist 定义了几个ProgramArguments,你可能会删除大部分这些参数,而是依赖于你的my.cnf MySQL 配置文件来定义它们。例如:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>             <string>com.oracle.oss.mysql.mysqld</string>
    <key>ProcessType</key>       <string>Interactive</string>
    <key>Disabled</key>          <false/>
    <key>RunAtLoad</key>         <true/>
    <key>KeepAlive</key>         <true/>
    <key>SessionCreate</key>     <true/>
    <key>LaunchOnlyOnce</key>    <false/>
    <key>UserName</key>          <string>_mysql</string>
    <key>GroupName</key>         <string>_mysql</string>
    <key>ExitTimeOut</key>       <integer>600</integer>
    <key>Program</key>           <string>/usr/local/mysql/bin/mysqld</string>
    <key>ProgramArguments</key>
        <array>
            <string>/usr/local/mysql/bin/mysqld</string>
            <string>--user=_mysql</string>
            <string>--basedir=/usr/local/mysql</string>
            <string>--datadir=/usr/local/mysql/data</string>
            <string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
            <string>--log-error=/usr/local/mysql/data/mysqld.local.err</string>
            <string>--pid-file=/usr/local/mysql/data/mysqld.local.pid</string>
            <string>--keyring-file-data=/usr/local/mysql/keyring/keyring</string>
            <string>--early-plugin-load=keyring_file=keyring_file.so</string>
        </array>
    <key>WorkingDirectory</key>  <string>/usr/local/mysql</string>
</dict>
</plist>

在这种情况下,basedirdatadirplugin_dirlog_errorpid_filekeyring_file_data,和--early-plugin-load 选项已从默认 plist ProgramArguments 定义中删除,你可以在my.cnf中定义它们。

2.4.4 安装和使用 MySQL 偏好设置面板

原文:dev.mysql.com/doc/refman/8.0/en/macos-installation-prefpane.html

MySQL 安装包包括一个 MySQL 偏好设置面板,使您能够启动、停止和控制 MySQL 安装在启动时自动启动的过程。

这个偏好设置面板是默认安装的,并列在您系统的系统偏好设置窗口下。

图 2.20 MySQL 偏好设置面板:位置

显示"MySQL"输入到 macOS 系统偏好设置搜索框中,并在左下角突出显示"MySQL"图标。

MySQL 偏好设置面板与安装 MySQL 服务器的 DMG 文件一起安装。通常它与 MySQL 服务器一起安装,但也可以单独安装。

要安装 MySQL 偏好设置面板:

  1. 按照文档中描述的步骤安装 MySQL 服务器,详见 Section 2.4.2, “在 macOS 上使用本机软件包安装 MySQL”。

  2. 在安装类型步骤中点击自定义。"偏好设置面板"选项在那里列出并默认启用;确保它没有被取消选择。其他选项,如 MySQL 服务器,可以选择或取消选择。

    图 2.21 MySQL 软件包安装向导:自定义

    自定义显示三个软件包名称选项:MySQL 服务器,MySQL 测试,偏好设置面板和 Launchd 支持。所有三个选项都被选中。

  3. 完成安装过程。

注意

MySQL 偏好设置面板仅启动和停止从 MySQL 软件包安装的 MySQL 安装,这些安装已安装在默认位置。

一旦安装了 MySQL 偏好设置面板,您可以使用此偏好设置面板控制您的 MySQL 服务器实例。

实例页面包括一个选项来启动或停止 MySQL,并且初始化数据库重新创建data/目录。卸载卸载 MySQL 服务器和可选的 MySQL 偏好设置面板和 launchd 信息。

图 2.22 MySQL 偏好设置面板:实例

左侧显示一个由"活动实例"、"已安装实例"和"数据目录"部分分隔的 MySQL 实例列表。右侧显示一个"停止 MySQL 服务器"按钮,一个名为"计算机启动时启动 MySQL"的复选框,以及"初始化数据库"和"卸载"按钮。几个字段引用 8.0.11 作为当前安装的 MySQL 版本。

图 2.23 MySQL 偏好设置面板:初始化数据库

显示一个选项来输入根密码,以及在 MySQL 8 客户端建议使用的强密码加密和与旧的 MySQL 5.x 客户端兼容的传统密码加密之间进行选择。可选的“加载配置文件”选项在初始化期间由 mysqld 加载,并指出插件特定选项可能会阻止初始化完成。

配置页面显示 MySQL 服务器选项,包括 MySQL 配置文件的路径。

图 2.24 MySQL 偏好设置窗格:配置

内容在周围的文本中描述。

MySQL 偏好设置窗格显示 MySQL 服务器的当前状态,如果服务器未运行,则显示停止(红色),如果服务器已经启动,则显示运行(绿色)。偏好设置窗格还显示了 MySQL 服务器是否已设置为自动启动的当前设置。

2.5 在 Linux 上安装 MySQL

原文:dev.mysql.com/doc/refman/8.0/en/linux-installation.html

2.5.1 在 Linux 上使用 MySQL Yum 仓库安装 MySQL

2.5.2 在 Linux 上使用 MySQL APT 仓库安装 MySQL

2.5.3 在 Linux 上使用 MySQL SLES 仓库安装 MySQL

2.5.4 在 Linux 上使用来自 Oracle 的 RPM 软件包安装 MySQL

2.5.5 在 Linux 上使用来自 Oracle 的 Debian 软件包安装 MySQL

2.5.6 在 Linux 上使用 Docker 容器部署 MySQL

2.5.7 从本地软件仓库在 Linux 上安装 MySQL

2.5.8 在 Linux 上使用 Juju 安装 MySQL

2.5.9 使用 systemd 管理 MySQL 服务器

Linux 支持多种不同的解决方案来安装 MySQL。我们建议您使用来自 Oracle 的发行版之一,其中提供了多种安装方法:

表 2.8 Linux 安装方法和信息

类型 设置方法 附加信息
Apt 启用MySQL Apt 仓库 文档
Yum 启用MySQL Yum 仓库 文档
Zypper 启用MySQL SLES 仓库 文档
RPM 下载 特定软件包 文档
DEB 下载 特定软件包 文档
通用 下载 通用软件包 ��档
Source 源代码编译 文档
Docker 使用Oracle 容器注册表。您也可以使用My Oracle Support 来获取 MySQL 企业版。 文档
Oracle Unbreakable Linux Network 使用 ULN 频道 文档")

作为替代方案,您可以使用系统上的软件包管理器从 Linux 发行版的本机软件仓库自动下载并安装 MySQL。这些本机软件包通常落后于当前可用版本。通常也无法安装创新版本,因为这些通常不会在本机仓库中提供。有关使用本机软件包安装程序的更多信息,请参阅 Section 2.5.7, “Installing MySQL on Linux from the Native Software Repositories”。

注意

对于许多 Linux 安装,您希望设置 MySQL 在您的机器启动时自动启动。许多本机软件包安装会为您执行此操作,但对于源码、二进制和 RPM 解决方案,您可能需要单独设置。所需的脚本,mysql.server,可以在 MySQL 安装目录下的 support-files 目录中或 MySQL 源代码树中找到。您可以将其安装为 /etc/init.d/mysql 以实现自动 MySQL 启动和关闭。请参阅 Section 6.3.3, “mysql.server — MySQL Server Startup Script”。

2.5.1 使用 MySQL Yum 存储库在 Linux 上安装 MySQL

原文:dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html

适用于 Oracle Linux、Red Hat Enterprise Linux、CentOS 和 Fedora 的MySQL Yum 存储库提供了用于安装 MySQL 服务器、客户端、MySQL Workbench、MySQL Utilities、MySQL Router、MySQL Shell、Connector/ODBC、Connector/Python 等的 RPM 软件包(并非所有软件包都适用于所有发行版;有关详细信息,请参阅使用 Yum 安装其他 MySQL 产品和组件)。

在开始之前

作为一款流行的开源软件,MySQL 以其原始或重新打包的形式广泛安装在许多系统上,这些系统来自不同的来源,包括不同的软件下载站点、软件存储库等。以下说明假定 MySQL 尚未使用第三方分发的 RPM 软件包安装在您的系统上;如果不是这种情况,请按照第 3.8 节,“使用 MySQL Yum 存储库升级 MySQL”或使用 MySQL Yum 存储库替换第三方分发的 MySQL 中给出的说明进行操作。

注意

存储库设置的 RPM 文件名以mysql80-community开头,以突出显示默认的活动 MySQL 子存储库,即今天的 MySQL 8.0。它们还安装了用于 MySQL 8.3 创新版本安装和升级的 MySQL 创新跟踪子存储库。

安装 MySQL 的新安装步骤

按照以下步骤使用 MySQL Yum 存储库安装最新的 GA 版本 MySQL:

  1. 添加 MySQL Yum 存储库

    首先,将 MySQL Yum 存储库添加到系统的存储库列表中。这是一个一次性操作,可以通过安装 MySQL 提供的一个 RPM 来执行。按照以下步骤进行:

    1. 前往 MySQL 开发者区的下载 MySQL Yum 存储库页面(dev.mysql.com/downloads/repo/yum/)。

    2. 选择并下载适用于您平台的发布软件包。

    3. 使用以下命令安装下载的发布软件包,将platform-and-version-specific-package-name替换为下载的 RPM 软件包的名称:

      $> sudo yum install *platform-and-version-specific-package-name*.rpm
      

      对于基于 EL6 的系统,命令的形式为:

      $> sudo yum install mysql80-community-release-el6-*{version-number}*.noarch.rpm
      

      对于基于 EL7 的系统:

      $> sudo yum install mysql80-community-release-el7-*{version-number}*.noarch.rpm
      

      对于基于 EL8 的系统:

      $> sudo yum install mysql80-community-release-el8-*{version-number}*.noarch.rpm
      

      对于基于 EL9 的系统:

      $> sudo yum install mysql80-community-release-el9-*{version-number}*.noarch.rpm
      

      对于 Fedora 37:

      $> sudo dnf install mysql80-community-release-fc37-*{version-number}*.noarch.rpm
      

      对于 Fedora 38:

      $> sudo dnf install mysql80-community-release-fc38-*{version-number}*.noarch.rpm
      

      对于 Fedora 39:

      $> sudo dnf install mysql80-community-release-fc39-*{version-number}*.noarch.rpm
      

      安装命令将 MySQL Yum 存储库添加到系统的存储库列表中,并下载 GnuPG 密钥以检查软件包的完整性。有关使用 GnuPG 密钥检查的详细信息,请参阅第 2.1.4.2 节,“使用 GnuPG 进行签名检查”。

      您可以通过以下命令检查 MySQL Yum 存储库是否已成功添加(对于启用了 dnf 的系统,请在命令中用dnf替换yum):

      $> yum repolist enabled | grep "mysql.*-community.*"
      

    注意

    一旦在您的系统上启用了 MySQL Yum 存储库,通过yum update命令(或对于启用了 dnf 的系统,通过dnf upgrade)进行的任何系统范围的更新都会升级系统上的 MySQL 软件包,并在 MySQL Yum 存储库中找到替代品时替换任何本地第三方软件包;请参见第 3.8 节,“使用 MySQL Yum 存储库升级 MySQL”,讨论可能对系统产生的一些影响,请参见升级共享客户端库。

  2. 选择一个发布系列

    当使用 MySQL Yum 存储库时,默认选择安装最新的 GA 系列(目前为 MySQL 8.0)。如果这正是您想要的,请跳转到下一步,安装 MySQL。

    在 MySQL Yum 存储库中,MySQL Community Server 的不同发布系列托管在不同的子存储库中。默认情况下启用最新 GA 系列(目前为 MySQL 8.0)的子存储库,并默认禁用所有其他系列的子存储库(例如 MySQL 8.0 系列)。使用此命令查看 MySQL Yum 存储库中的所有子存储库,并查看它们中哪些是启用的或禁用的(对于启用了 dnf 的系统,请在命令中用dnf替换yum):

    $> yum repolist all | grep mysql
    

    要安装最新发布的最新 GA 系列,无需进行任何配置。要安装特定系列的最新发布而不是最新的 GA 系列,需要在运行安装命令之前禁用最新 GA 系列的子存储库并启用特定系列的子存储库。如果您的平台支持yum-config-manager,您可以通过以下命令执行此操作,这些命令禁用了 5.7 系列的子存储库并启用了 8.0 系列的子存储库:

    $> sudo yum-config-manager --disable mysql57-community
    $> sudo yum-config-manager --enable mysql80-community
    

    对于启用了 dnf 的平台:

    $> sudo dnf config-manager --disable mysql57-community
    $> sudo dnf config-manager --enable mysql80-community
    

    除了使用yum-config-managerdnf config-manager命令外,您还可以通过手动编辑/etc/yum.repos.d/mysql-community.repo文件来选择一个发布系列。这是文件中发布系列子存储库的典型条目:

    [mysql57-community]
    name=MySQL 5.7 Community Server
    baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
           file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    

    找到要配置的子存储库条目,并编辑enabled选项。指定enabled=0以禁用子存储库,或enabled=1以启用子存储库。例如,要安装 MySQL 8.0,请确保上述 MySQL 5.7 子存储库条目的enabled=0,并且对于 8.0 系列的条目,enabled=1

    # Enable to use MySQL 8.0
    [mysql80-community]
    name=MySQL 8.0 Community Server
    baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/6/$basearch/
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
           file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    

    您应该一次只启用一个发布系列的子存储库。当启用了多个发布系列的子存储库时,Yum 会使用最新的系列。

    通过运行以下命令并检查其输出来验证已启用和禁用正确的子存储库(对于启用 dnf 的系统,请在命令中用 dnf 替换 yum):

    $> yum repolist enabled | grep mysql
    
  3. 禁用默认的 MySQL 模块

    (仅适用于 EL8 系统)基于 EL8 的系统(如 RHEL8 和 Oracle Linux 8)包含一个默认启用的 MySQL 模块。除非禁用此模块,否则会掩盖 MySQL 存储库提供的软件包。要禁用包含的模块并使 MySQL 存储库软件包可见,请使用以下命令(对于启用 dnf 的系统,请在命令中用 dnf 替换 yum):

    $> sudo yum module disable mysql
    
  4. 安装 MySQL

    通过以下命令安装 MySQL(对于启用 dnf 的系统,请在命令中用 dnf 替换 yum):

    $> sudo yum install mysql-community-server
    

    这将安装 MySQL 服务器的软件包(mysql-community-server)以及运行服务器所需组件的软件包,包括客户端的软件包(mysql-community-client)、客户端和服务器的常见错误消息和字符集的软件包(mysql-community-common)以及共享客户端库(mysql-community-libs)。

  5. 启动 MySQL 服务器

    使用��下命令启动 MySQL 服务器:

    $> systemctl start mysqld
    

    您可以使用以下命令检查 MySQL 服务器的状态:

    $> systemctl status mysqld
    

如果操作系统启用了 systemd,则应使用标准的 systemctl 命令(或者使用参数颠倒的 service)来管理 MySQL 服务器服务,如 stopstartstatusrestartmysqld 服务默认启用,并在系统重新启动时启动。有关更多信息,请参见 Section 2.5.9, “使用 systemd 管理 MySQL 服务器”。

在服务器初始启动时,假设服务器的数据目录为空,则会发生以下情况:

  • 服务器已初始化。

  • SSL 证书和密钥文件在数据目录中生成。

  • validate_password 已安装并启用。

  • 创建一个超级用户帐户 'root'@'localhost。设置并存储超级用户的密码在错误日志文件中。要显示它,请使用以下命令:

    $> sudo grep 'temporary password' /var/log/mysqld.log
    

    尽快使用生成的临时密码登录并为超级用户帐户设置自定义密码来更改根密码:

    $> mysql -uroot -p
    
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
    

    注意

    validate_password 默认安装。validate_password 实施的默认密码策略要求密码至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符,并且密码总长度至少为 8 个字符。

有关后安装程序的更多信息,请参见 Section 2.9, “后安装设置和测试”。

注意

基于 EL7 平台的兼容性信息: 平台的本机软件存储库中的以下 RPM 软件包与从 MySQL Yum 存储库安装 MySQL 服务器的软件包不兼容。一旦您使用 MySQL Yum 存储库安装了 MySQL,您就无法安装这些软件包(反之亦然)。

  • akonadi-mysql

使用 Yum 安装其他 MySQL 产品和组件

您可以使用 Yum 安装和管理 MySQL 的各个组件。其中一些组件托管在 MySQL Yum 存储库的子存储库中:例如,MySQL 连接器位于 MySQL 连接器社区子存储库中,而 MySQL Workbench 位于 MySQL 工具社区中。您可以使用以下命令列出来自 MySQL Yum 存储库的所有 MySQL 组件的软件包,适用于您平台(对于启用 dnf 的系统,请将命令中的 yum 替换为 dnf):

$> sudo yum --disablerepo=\* --enablerepo='mysql*-community*' list available

使用以下命令安装您选择的任何软件包,将 package-name 替换为软件包的名称(对于启用 dnf 的系统,请将命令中的 yum 替换为 dnf):

$> sudo yum install *package-name*

例如,在 Fedora 上安装 MySQL Workbench:

$> sudo dnf install mysql-workbench-community

要安装共享客户端库(对于启用 dnf 的系统,请将命令中的 yum 替换为 dnf):

$> sudo yum install mysql-community-libs

特定平台说明

ARM 支持

ARM 64 位(aarch64)在 Oracle Linux 7 上受支持,并需要 Oracle Linux 7 软件集合存储库(ol7_software_collections)。例如,要安装服务器:

$> yum-config-manager --enable ol7_software_collections
$> yum install mysql-community-server

注意

ARM 64 位(aarch64)在 MySQL 8.0.12 上受 Oracle Linux 7 支持。

已知限制

8.0.12 版本要求您在执行 yum install 步骤后通过执行 ln -s /opt/oracle/oracle-armtoolset-1/root/usr/lib64 /usr/lib64/gcc7 调整 libstdc++7 路径。

使用 Yum 更新 MySQL

除了安装外,您还可以使用 MySQL Yum 存储库执行 MySQL 产品和组件的更新。有关详细信息,请参阅 第 3.8 节,“使用 MySQL Yum 存储库升级 MySQL”。

2.5.2 在 Linux 上使用 MySQL APT 存储库安装 MySQL

原文:dev.mysql.com/doc/refman/8.0/en/linux-installation-apt-repo.html

MySQL APT 存储库提供了deb软件包,用于在当前的 Debian 和 Ubuntu 发行版上安装和管理 MySQL 服务器、客户端和其他组件。

使用 MySQL APT 存储库的说明可在 A Quick Guide to Using the MySQL APT Repository 中找到。

2.5.3 在 Linux 上使用 MySQL SLES 仓库安装 MySQL

原文:dev.mysql.com/doc/refman/8.0/en/linux-installation-sles-repo.html

MySQL SLES 仓库提供了用于在 SUSE 企业 Linux 服务器上安装和管理 MySQL 服务器、客户端和其他组件的 RPM 软件包。

使用 MySQL SLES 仓库的说明可在 A Quick Guide to Using the MySQL SLES Repository 中找到。

2.5.4 使用 Oracle 提供的 RPM 软件包在 Linux 上安装 MySQL

原文:dev.mysql.com/doc/refman/8.0/en/linux-installation-rpm.html

推荐在基于 RPM 的 Linux 发行版上安装 MySQL 的方法是使用 Oracle 提供的 RPM 软件包。有两个来源可以获取它们,适用于 MySQL 的社区版:

  • 从 MySQL 软件仓库获取:

    • MySQL Yum 仓库(详见 Section 2.5.1, “使用 MySQL Yum 仓库在 Linux 上安装 MySQL”)。

    • MySQL SLES 仓库(详见 Section 2.5.3, “使用 MySQL SLES 仓库在 Linux 上安装 MySQL”)。

  • 下载 MySQL 社区服务器页面中获取,位于MySQL 开发者区

注意

MySQL 的 RPM 发行版也由其他供应商提供。请注意,它们可能在功能、能力和约定(包括通信设置)方面与 Oracle 构建的不同,并且本手册中的安装说明不一定适用于它们。应该参考供应商的说明。

MySQL RPM 软件包

表 2.9 MySQL 社区版的 RPM 软件包

包名称 摘要
mysql-community-client MySQL 客户端应用程序和工具
mysql-community-client-plugins MySQL 客户端应用程序的共享插件
mysql-community-common 服务器和客户端库的通用文件
mysql-community-devel MySQL 数据库客户端应用程序的开发头文件和库
mysql-community-embedded-compat MySQL 服务器作为一个嵌入式库,兼容使用库版本 18 的应用程序
mysql-community-icu-data-files MySQL 打包的 ICU 数据文件,MySQL 正则表达式需要
mysql-community-libs MySQL 数据库客户端应用程序的共享库
mysql-community-libs-compat 用于先前 MySQL 安装的共享兼容性库;仅在平台支持先前的 MySQL 版本时存在
mysql-community-server 数据库服务器和相关工具
mysql-community-server-debug 调试服务器和插件二进制文件
mysql-community-test MySQL 服务器的测试套件
mysql-community 源代码 RPM 看起来类似于 mysql-community-8.0.36-1.el7.src.rpm,具体取决于所选的操作系统
其他debuginfo RPM 有几个debuginfo软件包:mysql-community-client-debuginfo、mysql-community-libs-debuginfo、mysql-community-server-debug-debuginfo、mysql-community-server-debuginfo 和 mysql-community-test-debuginfo。
包名称 摘要

表 2.10 MySQL 企业版的 RPM 软件包

包名称 摘要
mysql-commercial-backup MySQL 企业备份(在 8.0.11 中添加)
mysql-commercial-client MySQL 客户端应用程序和工具
mysql-commercial-client-plugins MySQL 客户端应用程序的共享插件
mysql-commercial-common 服务器和客户端库的通用文件
mysql-commercial-devel MySQL 数据库客户端应用程序的开发头文件和库
mysql-commercial-embedded-compat MySQL 服务器作为兼容性库嵌入式库,适用于使用库版本 18 的应用程序
mysql-commercial-icu-data-files MySQL 打包的 MySQL 正则表达式所需的 ICU 数据文件
mysql-commercial-libs MySQL 数据库客户端应用程序的共享库
mysql-commercial-libs-compat 用于先前 MySQL 安装的共享兼容性库;仅在平台支持先前的 MySQL 版本时存在。库的版本与您正在使用的发行版默认安装的库的版本相匹配。
mysql-commercial-server 数据库服务器和相关工具
mysql-commercial-test MySQL 服务器的测试套件
附加debuginfo RPMs 有几个debuginfo包:mysql-commercial-client-debuginfo、mysql-commercial-libs-debuginfo、mysql-commercial-server-debug-debuginfo、mysql-commercial-server-debuginfo 和 mysql-commercial-test-debuginfo。
软件包名称 摘要

RPM 的完整名称具有以下语法:

*packagename*-*version*-*distribution*-*arch*.rpm

distributionarch值表示构建软件包的 Linux 发行版和处理器类型。请参阅下表以获取发行标识符的列表:

表 2.11 MySQL Linux RPM 软件包分发标识符

发行值 预期用途
el{version},其中{version}是主要的 Enterprise Linux 版本,例如el8 基于 EL6(8.0)、EL7、EL8 和 EL9 的平台(例如,Oracle Linux、Red Hat Enterprise Linux 和 CentOS 的相应版本)
fc{version},其中{version}是主要的 Fedora 版本,例如fc37 Fedora 38 和 39
sles12 SUSE Linux 企业服务器 12

要查看 RPM 软件包中的所有文件(例如,mysql-community-server),请使用以下命令:

$> rpm -qpl mysql-community-server-*version*-*distribution*-*arch*.rpm

本节其余部分的讨论仅适用于直接从 Oracle 下载的 RPM 软件包进行安装过程,而不是通过 MySQL 存储库。

一些软件包之间存在依赖关系。如果您计划安装许多软件包,您可能希望下载 RPM 捆绑包tar文件,其中包含上述所有 RPM 软件包,这样您就不需要单独下载它们。

在大多数情况下,您需要安装 mysql-community-servermysql-community-clientmysql-community-client-pluginsmysql-community-libsmysql-community-icu-data-filesmysql-community-commonmysql-community-libs-compat 软件包才能获得一个功能齐全的标准 MySQL 安装。要执行这样的标准、基本安装,请转到包含所有这些软件包的文件夹(最好不要包含其他名称类似的 RPM 软件包),然后执行以下命令:

$> sudo yum install mysql-community-{server,client,client-plugins,icu-data-files,common,libs}-*

在 SLES 中用 zypper 替换 yum,在 Fedora 中用 dnf 替换。

尽管最好使用像 yum 这样的高级包管理工具来安装软件包,但喜欢直接使用 rpm 命令的用户可以将 yum install 命令替换为 rpm -Uvh 命令;然而,使用 rpm -Uvh 会使安装过程更容易失败,因为安装过程可能会遇到潜在的依赖性问题。

要仅安装客户端程序,您可以在要安装的软件包列表中跳过 mysql-community-server;执行以下命令:

$> sudo yum install mysql-community-{client,client-plugins,common,libs}-*

在 SLES 中用 zypper 替换 yum,在 Fedora 中用 dnf 替换。

使用 RPM 软件包进行标准的 MySQL 安装会在系统目录下创建文件和资源,如下表所示。

表 2.12 来自 MySQL Developer Zone 的 Linux RPM 软件包的 MySQL 安装布局

文件或资源 位置
客户端程序和脚本 /usr/bin
mysqld 服务器 /usr/sbin
配置文件 /etc/my.cnf
数据目录 /var/lib/mysql
错误日志文件 对于 RHEL、Oracle Linux、CentOS 或 Fedora 平台:/var/log/mysqld.log对于 SLES:/var/log/mysql/mysqld.log
secure_file_priv 的值 /var/lib/mysql-files
System V init script 对于 RHEL、Oracle Linux、CentOS 或 Fedora 平台:/etc/init.d/mysqld对于 SLES:/etc/init.d/mysql
Systemd 服务 对于 RHEL、Oracle Linux、CentOS 或 Fedora 平台:mysqld对于 SLES:mysql
Pid 文件 /var/run/mysql/mysqld.pid
Socket /var/lib/mysql/mysql.sock
密钥环目录 /var/lib/mysql-keyring
Unix 手册页 /usr/share/man
包含(头)文件 /usr/include/mysql
库文件 /usr/lib/mysql
其他支持文件(例如,错误消息和字符集文件) /usr/share/mysql
文件或资源 位置

安装还会在系统上创建一个名为 mysql 的用户和一个名为 mysql 的组。

注意

  • 使用useradd命令的-r-s /bin/false选项创建mysql用户,以便它没有登录服务器主机的权限(有关详细信息,请参见创建 mysql 用户和组)。要在您的操作系统上切换到mysql用户,请使用su命令的--shell=/bin/bash选项:

    su - mysql --shell=/bin/bash
    
  • 使用旧软件包安装之前版本的 MySQL 可能已经创建了名为/usr/my.cnf的配置文件。强烈建议您检查文件的内容,并将所需的设置迁移到文件/etc/my.cnf中,然后删除/usr/my.cnf

MySQL 在安装过程结束时不会自动启动。对于 Red Hat Enterprise Linux、Oracle Linux、CentOS 和 Fedora 系统,请使用以下命令启动 MySQL:

$> systemctl start mysqld

对于 SLES 系统,命令是相同的,但服务名称不同:

$> systemctl start mysql

如果操作系统启用了 systemd,则应使用标准的systemctl(或者使用参数颠倒的service)命令来管理 MySQL 服务器服务,例如stopstartstatusrestartmysqld服务默认启用,并在系统重新启动时启动。请注意,在 systemd 平台上可能会有一些不同的工作方式:例如,更改数据目录的位置可能会导致问题。有关更多信息,请参见 Section 2.5.9,“使用 systemd 管理 MySQL 服务器”。

在使用 RPM 和 DEB 软件包进行升级安装时,如果 MySQL 服务器在升级发生时正在运行,则 MySQL 服务器将被停止,升级将进行,然后 MySQL 服务器将被重新启动。一个例外:如果在升级过程中还更改了版本(例如从社区版到商业版,反之亦然),则 MySQL 服务器不会重新启动。

在服务器初始启动时,假设服务器的数据目录为空时,会发生以下情况:

  • 服务器已初始化。

  • 在数据目录中生成 SSL 证书和密钥文件。

  • validate_password已安装并启用。

  • 创建超级用户帐户'root'@'localhost'。设置超级用户的密码并将其存储在错误日志文件中。要显示密码,请对于 RHEL、Oracle Linux、CentOS 和 Fedora 系统使用以下命令:

    $> sudo grep 'temporary password' /var/log/mysqld.log
    

    对于 SLES 系统,请使用以下命令:

    $> sudo grep 'temporary password' /var/log/mysql/mysqld.log
    

    下一步是使用生成的临时密码登录并为超级用户帐户设置自定义密码:

$> mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

注意

默认情况下安装了validate_password。由validate_password实施的默认密码策略要求密码至少包含一个大写字母,一个小写字母,一个数字和一个特殊字符,并且密码总长度至少为 8 个字符。

如果在安装过程中出现问题,您可能会在错误日志文件/var/log/mysqld.log中找到调试信息。

对于一些 Linux 发行版,可能需要增加可用文件描述符数量的限制以供mysqld使用。请参阅 Section B.3.2.16, “File Not Found and Similar Errors”。

从多个 MySQL 版本安装客户端库。 可以安装多个客户端库版本,例如,如果您希望与链接到先前库的旧应用程序保持兼容性。要安装旧的客户端库,请使用rpm--oldpackage选项。例如,要在具有来自 MySQL 8.0 的libmysqlclient.21的 EL6 系统上安装mysql-community-libs-5.5,请使用以下命令:

$> rpm --oldpackage -ivh mysql-community-libs-5.5.50-2.el6.x86_64.rpm

调试包。 MySQL Server 的一个特殊变体编译了调试包并包含在服务器 RPM 包中。它执行调试和内存分配检查,并在服务器运行时生成一个跟踪文件。要使用该调试版本,请使用/usr/sbin/mysqld-debug启动 MySQL,而不是像服务或使用/usr/sbin/mysqld启动。请参阅 Section 7.9.4, “The DBUG Package”以了解您可以使用的调试选项。

注意

调试版本的默认插件目录从 MySQL 8.0.4 中的/usr/lib64/mysql/plugin更改为/usr/lib64/mysql/plugin/debug。以前,必须将plugin_dir更改为/usr/lib64/mysql/plugin/debug以供调试版本使用。

从源 SRPM 重新构建 RPM。 MySQL 的源代码 SRPM 包可以下载。它们可以原样使用,使用标准的rpmbuild工具链重新构建 MySQL 的 RPM 包。

2.5.5 使用 Oracle 的 Debian 软件包在 Linux 上安装 MySQL

原文:dev.mysql.com/doc/refman/8.0/en/linux-installation-debian.html

Oracle 提供了用于在 Debian 或类似 Debian 的 Linux 系统上安装 MySQL 的 Debian 软件包。这些软件包通过两个不同的渠道提供:

  • MySQL APT 存储库。这是在类似 Debian 的系统上安装 MySQL 的首选方法,因为它提供了一种简单方便的方式来安装和更新 MySQL 产品。详情请参阅 Section 2.5.2, “使用 MySQL APT 存储库在 Linux 上安装 MySQL”。

  • MySQL 开发者区下载区。详情请参阅 Section 2.1.3, “如何获取 MySQL”。以下是有关那里提供的 Debian 软件包以及安装说明的一些信息:

    • MySQL 开发者区提供了各种 Debian 软件包,用于在当前的 Debian 和 Ubuntu 平台上安装 MySQL 的不同组件。首选方法是使用 tarball 捆绑包,其中包含了 MySQL 基本设置所需的软件包。tarball 捆绑包的名称格式为mysql-server_*MVER*-*DVER*_*CPU*.deb-bundle.tarMVER是 MySQL 版本,DVER是 Linux 发行版版本。CPU值表示软件包构建的处理器类型或系列,如下表所示:

      表 2.13 MySQL Debian 和 Ubuntu 安装软件包 CPU 标识符

      CPU 预期处理器类型或系列
      i386 奔腾处理器或更高版本,32 位
      amd64 64 位 x86 处理器
    • 下载 tarball 后,使用以下命令解压缩:

      $> tar -xvf mysql-server_*MVER*-*DVER*_*CPU*.deb-bundle.tar
      
    • 如果系统中尚未安装libaio库,则可能需要安装:

      $> sudo apt-get install libaio1
      
    • 使用以下命令预配置 MySQL 服务器软件包:

      $> sudo dpkg-preconfigure mysql-community-server_*.deb
      

      您将被要求为 MySQL 安装的 root 用户提供密码。您可能还会被问及有关安装的其他问题。

      重要

      确保记住您设置的 root 密码。想要稍后设置密码的用户可以在对话框中将密码字段留空,然后只需按下 OK;在这种情况下,使用 Unix 套接字文件进行连接的服务器的 root 访问权限是通过 MySQL 套接字对等凭证认证插件进行验证。您可以稍后使用mysql_secure_installation设置 root 密码。

    • 对于 MySQL 服务器的基本安装,安装数据库公共文件包、客户端包、客户端元包、服务器包和服务器元包(按照这个顺序);你可以使用一个命令完成这些操作:

      $> sudo dpkg -i mysql-{common,community-client-plugins,community-client-core,community-client,client,community-server-core,community-server,server}_*.deb
      

      还有一些包的包名中带有server-coreclient-core。这些只包含二进制文件,并且会被标准包自动安装。单独安装它们并不会导致 MySQL 的正常运行。

      如果dpkg(如 libmecab2)提示存在未满足的依赖关系,你可以使用apt-get来解决:

      sudo apt-get -f install
      

      下面是系统上文件的安装位置:

      • 所有配置文件(如my.cnf)都位于/etc/mysql

      • 所有二进制文件、库文件、头文件等都位于/usr/bin/usr/sbin

      • 数据目录位于/var/lib/mysql

注意

Debian 发行版的 MySQL 也由其他供应商提供。请注意,它们可能在功能、能力和约定(包括通信设置)方面与 Oracle 构建的版本不同,并且本手册中的说明不一定适用于安装它们。应该参考供应商的说明。

2.5.6 在 Linux 上使用 Docker 容器部署 MySQL

原文:dev.mysql.com/doc/refman/8.0/en/linux-installation-docker.html

2.5.6.1 使用 Docker 部署 MySQL 服务器的基本步骤

2.5.6.2 使用 Docker 部署 MySQL 服务器的更多主题

2.5.6.3 在 Windows 和其他非 Linux 平台上使用 Docker 部署 MySQL

本节介绍如何使用 Docker 容器部署 MySQL 服务器。

虽然在以下说明中为演示目的使用docker客户端,但总体上,由 Oracle 提供的 MySQL 容器镜像可与符合OCI 1.0 规范的任何容器工具一起使用。

警告

在使用 Docker 容器部署 MySQL 之前,请确保您了解运行容器的安全风险并适当地加以缓解。

原文:dev.mysql.com/doc/refman/8.0/en/docker-mysql-getting-started.html

2.5.6.1 使用 Docker 部署 MySQL 服务器的基本步骤

警告

MySQL 团队维护的 MySQL Docker 镜像专为 Linux 平台构建。不支持其他平台,使用这些 MySQL Docker 镜像的用户自担风险。请参阅这里的讨论以了解在非 Linux 操作系统上运行这些容器的一些已知限制。

  • 下载 MySQL 服务器 Docker 镜像

  • 启动 MySQL 服务器实例

  • 从容器内部连接到 MySQL 服务器

  • 容器 Shell 访问

  • 停止和删除 MySQL 容器

  • 升级 MySQL 服务器容器

  • 使用 Docker 部署 MySQL 服务器的更多主题

下载 MySQL 服务器 Docker 镜像

重要

对于 MySQL 企业版用户:使用 Docker 镜像需要订阅 MySQL 企业版。订阅采用自带许可证模式;详细信息请参阅如何购买 MySQL 产品和服务

在单独的步骤中下载服务器镜像并不是绝对必要的;但是,在创建 Docker 容器之前执行此步骤可以确保您的本地镜像是最新的。要从Oracle 容器注册表(OCR)下载 MySQL 社区版镜像,请运行以下命令:

docker pull container-registry.oracle.com/mysql/community-server:*tag*

tag是您想要拉取的镜像版本的标签(例如,5.78.0latest)。如果:*tag*被省略,则使用latest标签,并下载 MySQL 社区服务器最新 GA 版本的镜像。

要从 OCR 下载 MySQL 企业版镜像,您需要首先在 OCR 上接受许可协议,并使用 Docker 客户端登录到容器仓库。请按照以下步骤操作:

  • 访问 OCR 网站container-registry.oracle.com/并选择 MySQL。

  • 在 MySQL 仓库列表中选择enterprise-server

  • 如果您尚未登录到 OCR,请点击页面右侧的“登录”按钮,然后在提示时输入您的 Oracle 帐户凭据。

  • 按照页面右侧的说明接受许可协议。

  • 使用例如 docker login 命令登录到 OCR 客户端:

    # docker login container-registry.oracle.com 
    Username: *Oracle-Account-ID*
    Password: *password*
    Login successful.
    

使用以下命令从 OCR 下载 MySQL Enterprise Edition 镜像:

docker pull  container-registry.oracle.com/mysql/enterprise-server:*tag*

要从My Oracle Support网站下载 MySQL Enterprise Edition 镜像,请进入网站,登录到您的 Oracle 帐户,然后在登陆页面执行以下步骤:

  • 选择“补丁和更新”选项卡。

  • 转到“补丁搜索”区域,在“搜索”选项卡上切换到“产品”或“家族(高级)”子选项卡。

  • 在“产品”字段中输入“MySQL Server”,在“版本”字段中输入所需的版本号。

  • 使用下拉菜单进行额外的筛选以选择“描述—包含”,并在文本字段中输入“Docker”。

    下图显示了 MySQL Server 8.0 的 MySQL Enterprise Edition 镜像的搜索设置:

    显示 MySQL Enterprise 镜像搜索设置的图表

  • 点击“搜索”按钮,从结果列表中选择您想要的版本,然后点击“下载”按钮。

  • 在弹出的文件下载对话框中,点击并下载 Docker 镜像的 .zip 文件。

解压下载的 .zip 存档以获取内部的 tarball(mysql-enterprise-server-*version*.tar),然后运行以下命令加载镜像:

docker load -i mysql-enterprise-server-*version*.tar

您可以使用以下命令列出已下载的 Docker 镜像:

$> docker images
REPOSITORY                                             TAG       IMAGE ID       CREATED        SIZE
container-registry.oracle.com/mysql/community-server   latest    1d9c2219ff69   2 months ago   496MB
启动 MySQL 服务器实例

要为 MySQL Server 启动一个新的 Docker 容器,请使用以下命令:

docker run --name=*container_name*  --restart on-failure -d *image_name*:*tag*

image_name 是要用来启动容器的镜像名称;请参阅下载 MySQL 服务器 Docker 镜像获取更多信息。

--name 选项用于为您的服务器容器提供自定义名称,是可选的;如果未提供容器名称,则会生成一个随机名称。

--restart 选项用于配置容器的重启策略;它应设置为值on-failure,以启用在客户端会话中支持服务器重启(例如,当客户端执行 RESTART 语句或在配置 InnoDB 集群实例期间发生时)。启用重启支持后,在客户端会话中发出重启命令会导致服务器和容器停止然后重新启动。MySQL 8.0.21 及更高版本支持服务器重启。

例如,要启动一个新的 MySQL Community Server 的 Docker 容器,请使用以下命令:

docker run --name=mysql1 --restart on-failure -d container-registry.oracle.com/mysql/community-server:latest

要使用从 OCR 下载的 Docker 镜像启动 MySQL Enterprise Server 的新 Docker 容器,请使用此命令:

docker run --name=mysql1 --restart on-failure -d container-registry.oracle.com/mysql/enterprise-server:latest

要使用从 My Oracle Support 下载的 Docker 镜像启动 MySQL Enterprise Server 的新 Docker 容器,请使用此命令:

docker run --name=mysql1 --restart on-failure -d mysql/enterprise-server:latest

如果指定名称和标签的 Docker 镜像尚未通过早期的docker pulldocker run命令下载,那么现在将下载该镜像。容器的初始化开始,并且当你运行docker ps命令时,容器将出现在正在运行的容器列表中。例如:

$> docker ps
CONTAINER ID   IMAGE                                                         COMMAND                  CREATED          STATUS                    PORTS                       NAMES
4cd4129b3211   container-registry.oracle.com/mysql/community-server:latest   "/entrypoint.sh mysq…"   8 seconds ago    Up 7 seconds (health: starting)   3306/tcp, 33060-33061/tcp   mysql1

容器初始化可能需要一些时间。当服务器准备就绪时,docker ps命令输出中容器的STATUS(health: starting)变为(healthy)

上述docker run命令中使用的-d选项使容器在后台运行。使用此命令监视容器的输出:

docker logs mysql1

一旦初始化完成,命令的输出将包含为 root 用户生成的随机密码;例如,使用此命令检查密码:

$> docker logs mysql1 2>&1 | grep GENERATED
GENERATED ROOT PASSWORD: Axegh3kAJyDLaRuBemecis&EShOs
从容器内连接到 MySQL 服务器

一旦服务器准备就绪,你可以在刚刚启动的 MySQL 服务器容器内运行mysql客户端,并连接到 MySQL 服务器。使用docker exec -it命令在你启动的 Docker 容器内启动mysql客户端,如下所示:

docker exec -it mysql1 mysql -uroot -p

当询问时,请输入生成的 root 密码(请参阅启动 MySQL 服务器实例中如何找到密码的最后一步)。因为MYSQL_ONETIME_PASSWORD选项默认为 true,在连接到服务器的mysql客户端后,你必须通过发出此语句重置服务器 root 密码:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '*password*';

用你选择的密码替换password。一旦密码重置,服务器就可以使用了。

容器 Shell 访问

要访问你的 MySQL 服务器容器的 shell,请使用docker exec -it命令在容器内启动一个 bash shell:

$> docker exec -it mysql1 bash
bash-4.2#

然后你可以在容器内运行 Linux 命令。例如,要查看容器内服务器数据目录中的内容,请使用此命令:

bash-4.2# ls /var/lib/mysql
auto.cnf    ca.pem	     client-key.pem  ib_logfile0  ibdata1  mysql       mysql.sock.lock	   private_key.pem  server-cert.pem  sys
ca-key.pem  client-cert.pem  ib_buffer_pool  ib_logfile1  ibtmp1   mysql.sock  performance_schema  public_key.pem   server-key.pem
停止和删除 MySQL 容器

要停止我们创建的 MySQL 服务器容器,请使用此命令:

docker stop mysql1

docker stopmysqld进程发送 SIGTERM 信号,以便服务器正常关闭。

还要注意,当容器的主要进程(在 MySQL 服务器容器的情况下为mysqld)停止时,Docker 容器会自动停止。

要再次启动 MySQL 服务器容器:

docker start mysql1

要一次性停止和重新启动 MySQL 服务器容器:

docker restart mysql1

要删除 MySQL 容器,首先停止它,然后使用docker rm命令:

docker stop mysql1
docker rm mysql1

如果希望同时删除服务器数据目录的 Docker 卷,请在docker rm命令中添加-v选项。

升级 MySQL 服务器容器

重要提示

  • 在对 MySQL 进行任何升级之前,请仔细遵循第三章,升级 MySQL中的说明。在那里讨论的其他说明中,特别重要的是在升级之前备份数据库。

  • 本节中的说明要求服务器的数据和配置已经在主机上持久化。详细信息请参见持久化数据和配置更改。

按照以下步骤将 Docker 安装的 MySQL 5.7 升级到 8.0:

  • 停止 MySQL 5.7 服务器(在此示例中容器名称为mysql57):

    docker stop mysql57
    
  • 下载 MySQL 8.0 服务器 Docker 镜像。请参见下载 MySQL 服务器 Docker 镜像中的说明。确保使用正确的 MySQL 8.0 标签。

  • 使用旧服务器数据和配置(如果需要进行适当修改,请参见第三章,升级 MySQL)在主机上持久化(在此示例中通过绑定挂载)。对于 MySQL Community Server,请运行以下命令:

    docker run --name=mysql80 \
       --mount type=bind,src=/path-on-host-machine/my.cnf,dst=/etc/my.cnf \
       --mount type=bind,src=/path-on-host-machine/datadir,dst=/var/lib/mysql \
       -d container-registry.oracle.com/mysql/community-server:8.0
    

    如果需要,将container-registry.oracle.com/mysql/community-server调整为正确的镜像名称,例如,从 OCR 下载的 MySQL Enterprise Edition 镜像替换为container-registry.oracle.com/mysql/enterprise-server,或者从 My Oracle Support 下载的 MySQL Enterprise Edition 镜像替换为mysql/enterprise-server

  • 等待服务器完成启动。您可以使用docker ps命令(请参见启动 MySQL 服务器实例)来检查服务器的状态。

对于在 8.0 系列内升级(即从版本 8.0.x 到 8.0.y)的相同步骤:停止原始容器,然后在旧服务器数据和配置上启动一个新容器。如果您在启动原始容器时使用了 8.0latest 标签,并且现在有一个新的 MySQL 8.0 版本需要升级,您必须首先使用以下命令拉取新版本的镜像:

docker pull container-registry.oracle.com/mysql/community-server:8.0

然后,您可以通过在旧数据和配置上启动一个容器来升级(如果您使用的是 MySQL 企业版,请调整镜像名称;请参阅下载 MySQL 服务器 Docker 镜像):

docker run --name=mysql80new \
   --mount type=bind,src=/path-on-host-machine/my.cnf,dst=/etc/my.cnf \
   --mount type=bind,src=/path-on-host-machine/datadir,dst=/var/lib/mysql \
-d container-registry.oracle.com/mysql/community-server:8.0

注意

对于 MySQL 8.0.15 及更早版本: 您需要通过在 MySQL 8.0 服务器容器中运行 mysql_upgrade 实用程序来完成升级过程(对于 MySQL 8.0.16 及更高版本,此步骤需要)。

  • docker exec -it mysql80 mysql_upgrade -uroot -p
    

    在提示时,输入旧服务器的 root 密码。

  • 通过重新启动新容器完成升级:

    docker restart mysql80
    
使用 Docker 部署 MySQL 服务器的更多主题

有关使用 Docker 部署 MySQL 服务器的更多主题,如服务器配置、持久化数据和配置、服务器错误日志和容器环境变量,请参阅第 2.5.6.2 节,“使用 Docker 部署 MySQL 服务器的更多主题”。

原文:dev.mysql.com/doc/refman/8.0/en/docker-mysql-more-topics.html

2.5.6.2 使用 Docker 部署 MySQL 服务器的更多主题

注意

以下大部分示例命令使用 container-registry.oracle.com/mysql/community-server 作为 Docker 镜像(比如 docker pulldocker run 命令);如果你的镜像来自其他仓库,请进行更改,例如,用 container-registry.oracle.com/mysql/enterprise-server 替换从 Oracle Container Registry (OCR) 下载的 MySQL Enterprise Edition 镜像,或者用 mysql/enterprise-server 替换从 My Oracle Support 下载的 MySQL Enterprise Edition 镜像。

  • 为 Docker 优化的 MySQL 安装

  • 配置 MySQL 服务器

  • 持久化数据和配置更改

  • 运行额外的初始化脚本

  • 从另一个 Docker 容器中的应用连接到 MySQL

  • 服务器错误日志

  • 在 Docker 中使用 MySQL Enterprise Backup

  • 在 Docker 中使用 mysqldump

  • 已知问题

  • Docker 环境变量

为 Docker 优化的 MySQL 安装

MySQL 的 Docker 镜像经过了代码大小的优化,这意味着它们只包含了对于在 Docker 容器中运行 MySQL 实例的大多数用户来说是相关的关键组件。MySQL Docker 安装与常规的非 Docker 安装在以下方面有所不同:

  • 只包含有限数量的二进制文件。

  • 所有二进制文件都经过了剥离;它们不包含调试信息。

警告

用户对 Docker 容器执行的任何软件更新或安装(包括 MySQL 组件)可能与 Docker 镜像创建的优化 MySQL 安装发生冲突。Oracle 不支持在这种被更改的容器中运行的 MySQL 产品,或者从被更改的 Docker 镜像创建的容器。

配置 MySQL 服务器

当您启动 MySQL Docker 容器时,可以通过 docker run 命令向服务器传递配置选项。例如:

docker run --name mysql1 -d container-registry.oracle.com/mysql/community-server:*tag* --character-set-server=utf8mb4 --collation-server=utf8mb4_col

该命令以 utf8mb4 作为默认字符集和 utf8mb4_col 作为数据库的默认排序规则启动 MySQL 服务器。

配置 MySQL 服务器的另一种方法是准备一个配置文件,并将其挂载到容器内部服务器配置文件的位置。详细信息请参见 持久化数据和配置更改。

持久化数据和配置更改

Docker 容器原则上是短暂的,如果容器被删除或损坏,则预计任何数据或配置都将丢失(请参见此处的讨论)。Docker 卷 提供了一种机制来持久化在 Docker 容器内创建的数据。在初始化时,MySQL 服务器容器为服务器数据目录创建一个 Docker 卷。容器上的 docker inspect 命令的 JSON 输出包含一个 Mount 键,其值提供有关数据目录卷的信息:

$> docker inspect mysql1
...
 "Mounts": [
 {
                "Type": "volume",
                "Name": "4f2d463cfc4bdd4baebcb098c97d7da3337195ed2c6572bc0b89f7e845d27652",
                "Source": "/var/lib/docker/volumes/4f2d463cfc4bdd4baebcb098c97d7da3337195ed2c6572bc0b89f7e845d27652/_data",
                "Destination": "/var/lib/mysql",
                "Driver": "local",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            }
        ],
...

输出显示,源目录 /var/lib/docker/volumes/4f2d463cfc4bdd4baebcb098c97d7da3337195ed2c6572bc0b89f7e845d27652/_data,其中数据在主机上持久化,已挂载到容器内部的 /var/lib/mysql,即服务器数据目录。

保留数据的另一种方法是在创建容器时使用 --mount 选项 绑定挂载 主机目录。相同的技术可以用于持久化服务器的配置。以下命令创建一个 MySQL 服务器容器,并同时绑定挂载数据目录和服务器配置文件:

docker run --name=mysql1 \
--mount type=bind,src=*/path-on-host-machine/my.cnf*,dst=/etc/my.cnf \
--mount type=bind,src=*/path-on-host-machine/datadir*,dst=/var/lib/mysql \
-d container-registry.oracle.com/mysql/community-server:*tag*

该命令将 *path-on-host-machine/my.cnf* 挂载到 /etc/my.cnf(容器内部的服务器配置文件),并将 *path-on-host-machine/datadir* 挂载到 /var/lib/mysql(容器内部的数据目录)。绑定挂载工作的前提条件如下:

  • 配置文件 *path-on-host-machine/my.cnf* 必须已经存在,并且必须包含由用户 mysql 启动服务器的规范:

    [mysqld]
    user=mysql
    

    您还可以在文件中包含其他服务器配置选项。

  • 数据目录 *path-on-host-machine/datadir* 必须已经存在。为了进行服务器初始化,目录必须为空。您还可以挂载一个预先填充了数据的目录并启动服务器;但是,您必须确保使用与创建数据的服务器相同的配置启动 Docker 容器,并在启动容器时挂载任何所需的主机文件或目录。

运行额外的初始化脚本

如果有任何.sh.sql脚本需要在数据库创建后立即运行,您可以将它们放入主机目录,然后将该目录挂载到容器内的/docker-entrypoint-initdb.d/。例如:

docker run --name=mysql1 \
--mount type=bind,src=*/path-on-host-machine/scripts/*,dst=/docker-entrypoint-initdb.d/ \
-d container-registry.oracle.com/mysql/community-server:*tag*
从另一个 Docker 容器中的应用程序连接到 MySQL

通过设置一个 Docker 网络,您可以允许多个 Docker 容器相互通信,以便另一个 Docker 容器中的客户端应用程序可以访问服务器容器中的 MySQL 服务器。首先,创建一个 Docker 网络:

docker network create *my-custom-net*

然后,在创建和启动服务器和客户端容器时,使用--network选项将它们放在您创建的网络上。例如:

docker run --name=mysql1 --network=*my-custom-net* -d container-registry.oracle.com/mysql/community-server
docker run --name=myapp1 --network=*my-custom-net* -d myapp

myapp1容器可以通过mysql1主机名连接到mysql1容器,反之亦然,因为 Docker 会自动为给定的容器名称设置 DNS。在以下示例中,我们从myapp1容器内部运行mysql客户端,以连接到其自己容器中的主机mysql1

docker exec -it myapp1 mysql --host=mysql1 --user=myuser --password

有关容器的其他网络技术,请参阅 Docker 文档中的Docker 容器网络部分。

服务器错误日志

当首次使用服务器容器启动 MySQL 服务器时,如果以下条件之一为真,则不会生成服务器错误日志:

  • 从主机挂载了一个服务器配置文件,但该文件不包含系统变量log_error(参见持久化数据和配置更改关于绑定挂载服务器配置文件)。

  • 未从主机挂载服务器配置文件,但 Docker 环境变量MYSQL_LOG_CONSOLEtrue(这是 MySQL 8.0 服务器容器的默认状态)。然后,MySQL 服务器的错误日志被重定向到stderr,因此错误日志进入 Docker 容器的日志,并可以使用docker logs mysqld-container命令查看。

要使 MySQL Server 在以下两种情况之一为真时生成错误日志,请使用--log-error选项来配置服务器以在容器内的特定位置生成错误日志。要持久化错误日志,请按照持久化数据和配置更改中的说明,在容器内的错误日志位置挂载主机文件。但是,您必须确保 MySQL Server 在其容器内具有对挂载主机文件的写访问权限。

使用 Docker 的 MySQL 企业备份

MySQL 企业备份是 MySQL Server 的商业许可备份实用程序,可在MySQL 企业版中使用。MySQL 企业备份包含在 MySQL 企业版的 Docker 安装中。

在以下示例中,我们假设您已经在 Docker 容器中运行了一个 MySQL Server(请参阅 Section 2.5.6.1,“使用 Docker 部署 MySQL Server 的基本步骤”以了解如何使用 Docker 启动 MySQL Server 实例)。为了让 MySQL 企业备份备份 MySQL Server,它必须能够访问服务器的数据目录。例如,可以通过在启动服务器时将主机目录绑定到 MySQL Server 的数据目录来实现这一点:

docker run --name=mysqlserver \
--mount type=bind,src=*/path-on-host-machine/datadir/*,dst=/var/lib/mysql \
-d mysql/enterprise-server:8.0

使用此命令,MySQL Server 将使用 MySQL 企业版的 Docker 镜像启动,并且主机目录/path-on-host-machine/datadir/已挂载到服务器容器内的数据目录(/var/lib/mysql)。我们还假设,在服务器启动后,已为 MySQL 企业备份设置了访问服务器所需权限(有关详细信息,请参见授予 MySQL 备份管理员权限)。按照以下步骤备份和恢复 MySQL Server 实例。

要使用 Docker 的 MySQL 企业备份备份在 Docker 容器中运行的 MySQL Server 实例,请按照这里列出的步骤操作:

  1. 在运行 MySQL 服务器容器的同一主机上,使用 MySQL 企业版镜像启动另一个容器,使用 MySQL 企业版备份命令 backup-to-image 执行备份。使用我们在上一步创建的绑定挂载访问服务器的数据目录。此外,将主机目录(在此示例中为 /path-on-host-machine/backups/)挂载到容器中用于存储备份的存储文件夹(在示例中为 /data/backups)以持久保存我们正在创建的备份。以下是执行此步骤的示例命令,其中使用从 My Oracle Support 下载的 Docker 镜像启动 MySQL 企业版备份:

    $> docker run \
    --mount type=bind,src=*/path-on-host-machine/datadir/*,dst=/var/lib/mysql \
    --mount type=bind,src=*/path-on-host-machine/backups/*,dst=/data/backups \
    --rm mysql/enterprise-server:8.0 \
    mysqlbackup -u*mysqlbackup* -p*password* --backup-dir=/tmp/backup-tmp --with-timestamp \
    --backup-image=/data/backups/db.mbi backup-to-image
    
    [Entrypoint] MySQL Docker Image 8.0.11-1.1.5
    MySQL Enterprise Backup version 8.0.11 Linux-4.1.12-61.1.16.el7uek.x86_64-x86_64 [2018-04-08  07:06:45]
    Copyright (c) 2003, 2018, Oracle and/or its affiliates. All Rights Reserved.
    
    180921 17:27:25 MAIN    INFO: A thread created with Id '140594390935680'
    180921 17:27:25 MAIN    INFO: Starting with following command line ...
    ...
    
    -------------------------------------------------------------
       Parameters Summary
    -------------------------------------------------------------
       Start LSN                  : 29615616
       End LSN                    : 29651854
    -------------------------------------------------------------
    
    mysqlbackup completed OK!
    

    重要的是通过 mysqlbackup 的输出末尾检查备份是否已成功完成。

  2. 一旦备份作业完成,容器就会退出,并且使用 --rm 选项启动时,容器在退出后会被删除。已经创建了一个镜像备份,并且可以在最后一步挂载备份存储的主机目录中找到,如下所示:

    $> ls /tmp/backups
    db.mbi
    

要在 Docker 容器中使用 MySQL 企业版备份还原 MySQL 服务器实例,请按照这里列出的步骤进行操作:

  1. 停止 MySQL 服务器容器,这也会停止运行在其中的 MySQL 服务器:

    docker stop mysqlserver
    
  2. 在主机上,删除 MySQL 服务器数据目录的绑定挂载中的所有内容:

    rm -rf */path-on-host-machine/datadir*/*
    
  3. 使用 MySQL 企业版镜像启动一个容器,使用 MySQL 企业版备份命令 copy-back-and-apply-log 执行还原操作。像我们备份服务器时所做的那样,将服务器的数据目录和备份存储文件夹进行绑定挂载:

    $> docker run \
    --mount type=bind,src=*/path-on-host-machine/datadir/*,dst=/var/lib/mysql \
    --mount type=bind,src=*/path-on-host-machine/backups/*,dst=/data/backups \
    --rm mysql/enterprise-server:8.0 \
    mysqlbackup --backup-dir=/tmp/backup-tmp --with-timestamp \
    --datadir=/var/lib/mysql --backup-image=/data/backups/db.mbi copy-back-and-apply-log
    
    [Entrypoint] MySQL Docker Image 8.0.11-1.1.5
    MySQL Enterprise Backup version 8.0.11 Linux-4.1.12-61.1.16.el7uek.x86_64-x86_64 [2018-04-08  07:06:45]
    Copyright (c) 2003, 2018, Oracle and/or its affiliates. All Rights Reserved.
    
    180921 22:06:52 MAIN    INFO: A thread created with Id '139768047519872'
    180921 22:06:52 MAIN    INFO: Starting with following command line ...
    ...
    180921 22:06:52 PCR1    INFO: We were able to parse ibbackup_logfile up to
              lsn 29680612.
    180921 22:06:52 PCR1    INFO: Last MySQL binlog file position 0 155, file name binlog.000003
    180921 22:06:52 PCR1    INFO: The first data file is '/var/lib/mysql/ibdata1'
                                  and the new created log files are at '/var/lib/mysql'
    180921 22:06:52 MAIN    INFO: No Keyring file to process.
    180921 22:06:52 MAIN    INFO: Apply-log operation completed successfully.
    180921 22:06:52 MAIN    INFO: Full Backup has been restored successfully.
    
    mysqlbackup completed OK! with 3 warnings
    

    一旦备份作业完成,容器就会退出,并且使用 --rm 选项启动时,容器在退出后会被删除。

  4. 使用以下命令重新启动服务器容器,这也会重新启动已还原的服务器:

    docker restart mysqlserver
    

    或者,在还原的数据目录上启动一个新的 MySQL 服务器,如下所示:

    docker run --name=mysqlserver2 \
    --mount type=bind,src=*/path-on-host-machine/datadir/*,dst=/var/lib/mysql \
    -d mysql/enterprise-server:8.0
    

    登录服务器检查服务器是否正在运行并使用还原的数据。

使用 mysqldump 与 Docker

除了在 Docker 容器中运行的 MySQL 服务器使用 MySQL 企业版备份备份外,您还可以通过在 Docker 容器中运行的 mysqldump 实用程序执行逻辑备份。

以下说明假定您已经在 Docker 容器中运行了一个 MySQL 服务器,并且在容器首次启动时,已经将主机目录/path-on-host-machine/datadir/挂载到服务器的数据目录/var/lib/mysql上(有关详细信息,请参见将主机目录绑定到 MySQL 服务器数据目录上),该目录包含 Unix 套接字文件,通过该文件mysqldumpmysql可以连接到服务器。我们还假设,在服务器启动后,已经创建了一个具有适当权限(在本例中为admin)的用户,mysqldump可以使用该用户访问服务器。请使用以下步骤备份和恢复 MySQL 服务器数据:

使用 Docker 使用mysqldump备份 MySQL 服务器数据

  1. 在运行 MySQL 服务器容器的同一主机上,启动另一个容器,其中包含 MySQL 服务器的镜像,以使用mysqldump实用程序执行备份(请参阅该实用程序的文档以了解其功能、选项和限制)。通过绑定挂载/path-on-host-machine/datadir/提供对服务器数据目录的访问。此外,将主机目录(在本例中为/path-on-host-machine/backups/)挂载到容器内用于存储备份的存储文件夹(在本例中使用/data/backups)以持久保存您创建的备份。以下是使用此设置备份服务器上所有数据库的示例命令:

    $> docker run --entrypoint "/bin/sh" \ 
    --mount type=bind,src=*/path-on-host-machine/datadir/*,dst=/var/lib/mysql \
    --mount type=bind,src=*/path-on-host-machine/backups/*,dst=/data/backups \
    --rm container-registry.oracle.com/mysql/community-server:8.0 \
    -c "mysqldump -u*admin* --password='*password*' --all-databases > /data/backups/all-databases.sql"
    

    在命令中,使用--entrypoint选项启动容器后调用系统 shell,并使用-c选项指定要在 shell 中运行的mysqldump命令,其输出被重定向到备份目录中的文件all-databases.sql

  2. 一旦备份作业完成,容器就会退出,并且使用--rm选项启动后,容器在退出后将被删除。已创建了一个逻辑备份,并且可以在用于存储备份的主机目录中找到,如下所示:

    $> ls */path-on-host-machine/backups/*
    all-databases.sql
    

使用 Docker 使用mysqldump恢复 MySQL 服务器数据

  1. 确保您在容器中运行了一个 MySQL 服务器,您希望将备份数据还原到该服务器上。

  2. 启动一个包含 MySQL 服务器镜像的容器,使用mysql客户端执行恢复操作。绑定挂载服务器的数据目录,以及包含您备份的存储文件夹:

    $> docker run  \
    --mount type=bind,src=*/path-on-host-machine/datadir/*,dst=/var/lib/mysql \
    --mount type=bind,src=*/path-on-host-machine/backups/*,dst=/data/backups \
    --rm container-registry.oracle.com/mysql/community-server:8.0 \
    mysql -u*admin* --password='*password*' -e "source /data/backups/all-databases.sql"
    

    一旦备份作业完成,容器就会退出,并且在启动时使用--rm选项后,容器在退出后会被删除。

  3. 登录服务器检查已恢复的数据是否已在服务器上。

已知问题
  • 当使用服务器系统变量audit_log_file来配置审计日志文件名时,请使用loose 选项修饰符;否则,Docker 无法启动服务器。
Docker 环境变量

当创建 MySQL 服务器容器时,可以使用--env选项(简写为-e)并指定一个或多个环境变量来配置 MySQL 实例。如果挂载的数据目录不为空,则不会执行服务器初始化,在这种情况下设置这些变量之一也没有效果(参见持久化数据和配置更改),并且在容器启动期间不会修改目录的任何现有内容,包括服务器设置。

可用于配置 MySQL 实例的环境变量列在这里:

  • 包括MYSQL_RANDOM_ROOT_PASSWORDMYSQL_ONETIME_PASSWORDMYSQL_ALLOW_EMPTY_PASSWORDMYSQL_LOG_CONSOLE在内的布尔变量通过将它们设置为任何非零长度的字符串来设为真。因此,将它们设置为“0”、“false”或“no”并不会使它们为假,而实际上会使它们为真。这是一个已知问题。

  • MYSQL_RANDOM_ROOT_PASSWORD:当此变量为真时(这是其默认状态,除非设置了MYSQL_ROOT_PASSWORDMYSQL_ALLOW_EMPTY_PASSWORD为真),在启动 Docker 容器时会为服务器的 root 用户生成一个随机密码。密码会打印到容器的stdout中,并且可以通过查看容器的日志(参见启动 MySQL 服务器实例)找到。

  • MYSQL_ONETIME_PASSWORD: 当该变量为 true(这是默认状态,除非设置了MYSQL_ROOT_PASSWORDMYSQL_ALLOW_EMPTY_PASSWORD为 true),root 用户的密码将被设置为过期,必须在 MySQL 可以正常使用之前更改。

  • MYSQL_DATABASE: 此变量允许您在镜像启动时指定要创建的数据库的名称。如果使用MYSQL_USERMYSQL_PASSWORD提供了用户名和密码,则将创建用户并授予该数据库的超级用户访问权限(对应于GRANT ALL)。指定的数据库是通过 CREATE DATABASE IF NOT EXIST 语句创建的,因此如果数据库已经存在,则该变量不起作用。

  • MYSQL_USER, MYSQL_PASSWORD: 这些变量一起用于创建用户并设置该用户的密码,用户被授予指定由MYSQL_DATABASE变量的数据库的超级用户权限。要创建用户,MYSQL_USERMYSQL_PASSWORD都是必需的 - 如果两个变量中的任何一个未设置,则另一个将被忽略。如果两个变量都设置了但MYSQL_DATABASE没有设置,则创建用户时不授予任何权限。

    注意

    不需要使用此机制来创建默认情况下使用MYSQL_ROOT_PASSWORDMYSQL_RANDOM_ROOT_PASSWORD中讨论的任一机制设置密码的根超级用户,除非MYSQL_ALLOW_EMPTY_PASSWORD为 true。

  • MYSQL_ROOT_HOST:默认情况下,MySQL 创建'root'@'localhost'帐户。此帐户只能从容器内部连接,如从容器内部连接到 MySQL 服务器中所述。要允许来自其他主机的 root 连接,请设置此环境变量。例如,值172.17.0.1,这是默认的 Docker 网关 IP,允许来自运行容器的主机机器的连接。该选项只接受一个条目,但允许使用通配符(例如,MYSQL_ROOT_HOST=172.*.*.*MYSQL_ROOT_HOST=%)。

  • MYSQL_LOG_CONSOLE:当变量为 true(对于 MySQL 8.0 服务器容器而言,这是其默认状态)时,MySQL 服务器的错误日志被重定向到stderr,因此错误日志进入 Docker 容器的日志,并且可以使用docker logs mysqld-container命令查看。

    注意

    如果主机已挂载服务器配置文件(参见 Persisting Data and Configuration Changes 中的绑定挂载配置文件),则该变量不起作用。

  • MYSQL_ROOT_PASSWORD:此变量指定为 MySQL root 帐户设置的密码。

    警告

    在命令行上设置 MySQL root 用户密码是不安全的。作为明确指定密码的替代方案,您可以设置一个容器文件路径的变量,用于密码文件,然后挂载来自主机的包含密码的文件到容器文件路径。这仍然不是非常安全的,因为密码文件的位置仍然暴露。最好使用MYSQL_RANDOM_ROOT_PASSWORDMYSQL_ONETIME_PASSWORD的默认设置,两者都设置为 true。

  • MYSQL_ALLOW_EMPTY_PASSWORD。将其设置为 true 以允许使用空密码启动容器以用于 root 用户。

    警告

    将此变量设置为 true 是不安全的,因为它将使您的 MySQL 实例完全无保护,允许任何人获得完全的超级用户访问权限。最好使用MYSQL_RANDOM_ROOT_PASSWORDMYSQL_ONETIME_PASSWORD的默认设置,两者都设置为 true。

原文:dev.mysql.com/doc/refman/8.0/en/deploy-mysql-nonlinux-docker.html

2.5.6.3 在 Windows 和其他非 Linux 平台上使用 Docker 部署 MySQL

警告

Oracle 提供的 MySQL Docker 镜像专为 Linux 平台构建。其他平台不受支持,使用 Oracle 提供的 MySQL Docker 镜像在这些平台上运行属于自担风险。本节讨论了在非 Linux 平台上使用这些镜像时的一些已知问题。

使用 Oracle 在 Windows 上的 MySQL 服务器 Docker 镜像存在以下已知问题:

  • 如果您在容器的 MySQL 数据目录上进行绑定挂载(详见持久化数据和配置更改),您必须使用 --socket 选项将服务器套接字文件的位置设置在 MySQL 数据目录之外的某个地方;否则,服务器将无法启动。这是因为 Docker for Windows 处理文件挂载的方式不允许将主机文件绑定挂载到套接字文件上。

2.5.7 在 Linux 上从本地软件仓库安装 MySQL

原文:dev.mysql.com/doc/refman/8.0/en/linux-installation-native.html

许多 Linux 发行版在其本地软件仓库中包含 MySQL 服务器、客户端工具和开发组件的版本,并可以使用平台的标准软件包管理系统进行安装。本节提供了使用这些软件包管理系统安装 MySQL 的基本说明。

重要

本地软件包通常落后于当前可用版本。通常无法安装开发里程碑版本(DMR),因为这些版本通常不会在本地仓库中提供。在继续之前,我们建议您查看 Section 2.5, “在 Linux 上安装 MySQL”中描述的其他安装选项。

下面显示了特定于发行版的说明:

  • Red Hat Linux, Fedora, CentOS

    注意

    对于许多 Linux 发行版,您可以使用 MySQL Yum 仓库而不是平台的本地软件仓库来安装 MySQL。有关详细信息,请参阅 Section 2.5.1, “使用 MySQL Yum 仓库在 Linux 上安装 MySQL”。

    对于 Red Hat 和类似的发行版,MySQL 分发为多个单独的软件包,mysql 用于客户端工具,mysql-server 用于服务器和相关工具,mysql-libs 用于库。如果您希望从不同的语言和环境(如 Perl、Python 等)提供连接,则需要这些库。

    要安装,请使用yum命令指定要安装的软件包。例如:

    #> yum install mysql mysql-server mysql-libs mysql-server
    Loaded plugins: presto, refresh-packagekit
    Setting up Install Process
    Resolving Dependencies
    --> Running transaction check
    ---> Package mysql.x86_64 0:5.1.48-2.fc13 set to be updated
    ---> Package mysql-libs.x86_64 0:5.1.48-2.fc13 set to be updated
    ---> Package mysql-server.x86_64 0:5.1.48-2.fc13 set to be updated
    --> Processing Dependency: perl-DBD-MySQL for package: mysql-server-5.1.48-2.fc13.x86_64
    --> Running transaction check
    ---> Package perl-DBD-MySQL.x86_64 0:4.017-1.fc13 set to be updated
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ================================================================================
     Package               Arch          Version               Repository      Size
    ================================================================================
    Installing:
     mysql                 x86_64        5.1.48-2.fc13         updates        889 k
     mysql-libs            x86_64        5.1.48-2.fc13         updates        1.2 M
     mysql-server          x86_64        5.1.48-2.fc13         updates        8.1 M
    Installing for dependencies:
     perl-DBD-MySQL        x86_64        4.017-1.fc13          updates        136 k
    
    Transaction Summary
    ================================================================================
    Install       4 Package(s)
    Upgrade       0 Package(s)
    
    Total download size: 10 M
    Installed size: 30 M
    Is this ok [y/N]: y
    Downloading Packages:
    Setting up and reading Presto delta metadata
    Processing delta metadata
    Package(s) data still to download: 10 M
    (1/4): mysql-5.1.48-2.fc13.x86_64.rpm                    | 889 kB     00:04
    (2/4): mysql-libs-5.1.48-2.fc13.x86_64.rpm               | 1.2 MB     00:06
    (3/4): mysql-server-5.1.48-2.fc13.x86_64.rpm             | 8.1 MB     00:40
    (4/4): perl-DBD-MySQL-4.017-1.fc13.x86_64.rpm            | 136 kB     00:00
    --------------------------------------------------------------------------------
    Total                                           201 kB/s |  10 MB     00:52
    Running rpm_check_debug
    Running Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Installing     : mysql-libs-5.1.48-2.fc13.x86_64                          1/4
      Installing     : mysql-5.1.48-2.fc13.x86_64                               2/4
      Installing     : perl-DBD-MySQL-4.017-1.fc13.x86_64                       3/4
      Installing     : mysql-server-5.1.48-2.fc13.x86_64                        4/4
    
    Installed:
      mysql.x86_64 0:5.1.48-2.fc13            mysql-libs.x86_64 0:5.1.48-2.fc13
      mysql-server.x86_64 0:5.1.48-2.fc13
    
    Dependency Installed:
      perl-DBD-MySQL.x86_64 0:4.017-1.fc13
    
    Complete!
    

    MySQL 和 MySQL 服务器现在应该已安装。一个示例配置文件被安装到/etc/my.cnf。要启动 MySQL 服务器,请使用systemctl

    $> systemctl start mysqld
    

    如果数据库表尚不存在,系统会自动为您创建这些表。但是,您应该运行mysql_secure_installation来设置服务器的 root 密码。

  • Debian, Ubuntu, Kubuntu

    注意

    对于支持的 Debian 和 Ubuntu 版本,可以使用MySQL APT 仓库来安装 MySQL,而不是使用平台的本地软件仓库。有关详细信息,请参阅 Section 2.5.2, “使用 MySQL APT 仓库在 Linux 上安装 MySQL”。

    在 Debian 及相关发行版中,他们的软件仓库中有两个 MySQL 软件包,mysql-clientmysql-server,分别用于客户端和服务器组件。您应该指定一个明确的版本,例如mysql-client-5.1,以确保安装您想要的 MySQL 版本。

    要下载和安装,包括任何依赖项,请使用apt-get命令,指定您想要安装的软件包。

    注意

    在安装之前,请确保更新您的apt-get索引文件,以确保您下载的是最新版本。

    注意

    apt-get命令安装了许多软件包,包括 MySQL 服务器,以提供典型的工具和应用环境。这意味着除了主要的 MySQL 软件包外,您可能还会安装大量软件包。

    在安装过程中,会创建初始数据库,并提示您输入 MySQL root 密码(以及确认密码)。在/etc/mysql/my.cnf中创建配置文件。在/etc/init.d/mysql中创建初始化脚本。

    服务器应该已经启动。您可以使用以下命令手动启动和停止服务器:

    #> service mysql [start|stop]
    

    该服务会自动添加到 2、3 和 4 运行级别,并在单个、关机和重启级别中添加停止脚本。

2.5.8 在 Linux 上使用 Juju 安装 MySQL

原文:dev.mysql.com/doc/refman/8.0/en/linux-installation-juju.html

Juju 部署框架支持简单安装和配置 MySQL 服务器。具体操作说明,请参见jujucharms.com/mysql/

2.5.9 使用 systemd 管理 MySQL 服务器

原文:dev.mysql.com/doc/refman/8.0/en/using-systemd.html

如果您在以下 Linux 平台上使用 RPM 或 Debian 软件包安装 MySQL,则服务器的启动和关闭由 systemd 管理:

  • RPM 软件包平台:

    • 企业 Linux 变体版本 7 及更高版本

    • SUSE Linux Enterprise Server 12 及更高版本

    • Fedora 29 及更高版本

  • Debian 家族平台:

    • Debian 平台

    • Ubuntu 平台

如果您在使用 systemd 的平台上从通用二进制发行版安装 MySQL,则可以按照 MySQL 8.0 安全部署指南中提供的后安装设置部分的说明手动配置 MySQL 的 systemd 支持。

如果您在使用 systemd 的平台上从源代码发行版安装 MySQL,则可以通过使用 -DWITH_SYSTEMD=1 CMake 选项配置发行版以获得 MySQL 的 systemd 支持。请参阅第 2.8.7 节,“MySQL 源代码配置选项”。

以下讨论涵盖了这些主题:

  • systemd 概述

  • 为 MySQL 配置 systemd

  • 使用 systemd 配置多个 MySQL 实例

  • 从 mysqld_safe 迁移到 systemd

注意

在为 MySQL 安装了 systemd 支持的平台上,诸如mysqld_safe和 System V 初始化脚本等脚本是不必要的,也不会被安装。例如,mysqld_safe可以处理服务器重启,但 systemd 提供了相同的功能,并且以与其他服务管理一致的方式进行,而不是使用特定于应用程序的程序。

在使用 systemd 进行服务器管理的平台上不使用mysqld_safe的一个影响是,不支持在选项文件中使用 [mysqld_safe][safe_mysqld] 部分,可能会导致意外行为。

因为 systemd 在安装了 MySQL systemd 支持的平台上具有管理多个 MySQL 实例的能力,所以mysqld_multimysqld_multi.server 是不必要的,也不会被安装。

systemd 概述

systemd 提供自动 MySQL 服务器启动和关闭。它还通过systemctl命令启用手动服务器管理。例如:

$> systemctl *{start|stop|restart|status}* mysqld

或者,使用service命令(参数颠倒),该命令与 System V 系统兼容:

$> service mysqld *{start|stop|restart|status}*

注意

对于systemctl命令(以及替代的service命令),如果 MySQL 服务名称不是mysqld,则使用适当的名称。例如,在基于 Debian 和 SLES 系统上使用mysql而不是mysqld

systemd 的支持包括这些文件:

  • mysqld.service(RPM 平台),mysql.service(Debian 平台):systemd 服务单元配置文件,包含有关 MySQL 服务的详细信息。

  • mysqld@.service(RPM 平台),mysql@.service(Debian 平台):类似于mysqld.servicemysql.service,但用于管理多个 MySQL 实例。

  • mysqld.tmpfiles.d:包含支持tmpfiles功能信息的文件。此文件安装为mysql.conf

  • mysqld_pre_systemd(RPM 平台),mysql-system-start(Debian 平台):单元文件的支持脚本。此脚本仅在错误日志位置匹配模式(对于 RPM 平台为/var/log/mysql*.log,对于 Debian 平台为/var/log/mysql/*.log)时协助创建错误日志文件。在其他情况下,错误日志目录必须可写,或者错误日志必须存在并对运行mysqld进程的用户可写。

配置 MySQL 的 systemd

要为 MySQL 添加或更改 systemd 选项,可以使用以下方法:

  • 使用本地化的 systemd 配置文件。

  • 安排 systemd 为 MySQL 服务器进程设置环境变量。

  • 设置MYSQLD_OPTS systemd 变量。

要使用本地化的 systemd 配置文件,请创建/etc/systemd/system/mysqld.service.d目录(如果不存在)。在该目录中,创建一个包含列出所需设置的[Service]部分的文件。例如:

[Service]
LimitNOFILE=*max_open_files*
Nice=*nice_level*
LimitCore=*core_file_limit*
Environment="LD_PRELOAD=*/path/to/malloc/library*"
Environment="TZ=*time_zone_setting*"

此处讨论使用override.conf作为此文件的名称。较新版本的 systemd 支持以下命令,该命令打开编辑器并允许您编辑文件:

systemctl edit mysqld  # RPM platforms
systemctl edit mysql   # Debian platforms

每当创建或更改override.conf时,重新加载 systemd 配置,然后告诉 systemd 重新启动 MySQL 服务:

systemctl daemon-reload
systemctl restart mysqld  # RPM platforms
systemctl restart mysql   # Debian platforms

对于某些参数,必须使用override.conf配置方法,而不是在 MySQL 选项文件的[mysqld][mysqld_safe][safe_mysqld]组中的设置:

  • 对于某些参数,必须使用override.conf,因为 systemd 本身必须知道它们的值,而不能读取 MySQL 选项文件来获取它们。

  • 指定值的参数,否则只能使用已知于mysqld_safe的选项设置,必须使用 systemd 指定,因为没有对应的mysqld参数。

有关使用 systemd 而不是mysqld_safe的更多信息,请参阅从 mysqld_safe 迁移到 systemd。

您可以在override.conf中设置以下参数:

  • 要设置 MySQL 服务器可用的文件描述符数量,请在override.conf中使用LimitNOFILE,而不是mysqldopen_files_limit系统变量或mysqld_safe--open-files-limit选项。

  • 要设置最大核心文件大小,请在override.conf中使用LimitCore,而不是--core-file-size选项用于mysqld_safe

  • 要为 MySQL 服务器设置调度优先级,请在override.conf中使用Nice,而不是--nice选项用于mysqld_safe

一些 MySQL 参数使用环境变量进行配置:

  • LD_PRELOAD: 如果 MySQL 服务器应该使用特定的内存分配库,请设置此变量。

  • NOTIFY_SOCKET: 此环境变量指定mysqld用于与 systemd 通信启动完成和服务状态更改通知的套接字。当启动mysqld服务时,systemd 会设置它。mysqld服务读取变量设置并写入定义的位置。

    在 MySQL 8.0 中,mysqld使用Type=notify进程启动类型。 (MySQL 5.7 中使用Type=forking。)使用Type=notify,systemd 会自动配置套接字文件并导出路径到NOTIFY_SOCKET环境变量。

  • TZ: 设置此变量以指定服务器的默认时区。

有多种方法可以指定由 systemd 管理的 MySQL 服务器进程使用的环境变量值:

  • override.conf文件中使用Environment行。有关语法,请参见前面讨论中描述如何使用此文件的示例。

  • /etc/sysconfig/mysql文件中指定值(如果不存在,请创建该文件)。使用以下语法分配值:

    LD_PRELOAD=*/path/to/malloc/library*
    TZ=*time_zone_setting*
    

    修改/etc/sysconfig/mysql后,重新启动服务器以使更改生效:

    systemctl restart mysqld  # RPM platforms
    systemctl restart mysql   # Debian platforms
    

要为mysqld指定选项而不直接修改 systemd 配置文件,请设置或取消设置MYSQLD_OPTS systemd 变量。例如:

systemctl set-environment MYSQLD_OPTS="--general_log=1"
systemctl unset-environment MYSQLD_OPTS

MYSQLD_OPTS 也可以在 /etc/sysconfig/mysql 文件中设置。

修改 systemd 环境后,重新启动服务器以使更改生效:

systemctl restart mysqld  # RPM platforms
systemctl restart mysql   # Debian platforms

对于使用 systemd 的平台,如果数据目录在服务器启动时为空,则会初始化数据目录。如果数据目录是一个暂时消失的远程挂载点,这可能会成为一个问题:挂载点看起来像一个空的数据目录,然后会被初始化为一个新的数据目录。要抑制此自动初始化行为,请在 /etc/sysconfig/mysql 文件中指定以下行(如果文件不存在,请创建文件):

NO_INIT=true

使用 systemd 配置多个 MySQL 实例

本节描述了如何为多个 MySQL 实例配置 systemd。

注意

因为 systemd 在安装了 systemd 支持的平台上具有管理多个 MySQL 实例的能力,所以 mysqld_multimysqld_multi.server 是不必要的,也不会安装。

要使用多实例功能,修改 my.cnf 选项文件以包含每个实例的关键选项配置。这些文件位置通常如下:

  • /etc/my.cnf/etc/mysql/my.cnf(RPM 平台)

  • /etc/mysql/mysql.conf.d/mysqld.cnf(Debian 平台)

例如,要管理名为 replica01replica02 的两个实例,请在选项文件中添加类似以下内容:

RPM 平台:

[mysqld@replica01]
datadir=/var/lib/mysql-replica01
socket=/var/lib/mysql-replica01/mysql.sock
port=3307
log-error=/var/log/mysqld-replica01.log

[mysqld@replica02]
datadir=/var/lib/mysql-replica02
socket=/var/lib/mysql-replica02/mysql.sock
port=3308
log-error=/var/log/mysqld-replica02.log

Debian 平台:

[mysqld@replica01]
datadir=/var/lib/mysql-replica01
socket=/var/lib/mysql-replica01/mysql.sock
port=3307
log-error=/var/log/mysql/replica01.log

[mysqld@replica02]
datadir=/var/lib/mysql-replica02
socket=/var/lib/mysql-replica02/mysql.sock
port=3308
log-error=/var/log/mysql/replica02.log

这里显示的副本名称使用 @ 作为分隔符,因为这是 systemd 支持的唯一分隔符。

然后实例将由正常的 systemd 命令管理,例如:

systemctl start mysqld@replica01
systemctl start mysqld@replica02

要在启动时启用实例运行,请执行以下操作:

systemctl enable mysqld@replica01
systemctl enable mysqld@replica02

也支持使用通配符。例如,以下命令显示所有副本实例的状态:

systemctl status 'mysqld@replica*'

对于在同一台机器上管理多个 MySQL 实例,systemd 自动使用不同的单元文件:

  • mysqld@.service 而不是 mysqld.service(RPM 平台)

  • mysql@.service 而不是 mysql.service(Debian 平台)

在单元文件中,%I%i 引用在 @ 标记后传递的参数,并用于管理特定实例。对于这样的命令:

systemctl start mysqld@replica01

systemd 使用类似以下命令启动服务器:

mysqld --defaults-group-suffix=@%I ...

结果是 [server][mysqld][mysqld@replica01] 选项组将被读取并用于该服务的实例。

注意

在 Debian 平台上,AppArmor 阻止服务器读取或写入 /var/lib/mysql-replica*,或者除了默认位置之外的任何其他位置。要解决这个问题,您必须自定义或禁用 /etc/apparmor.d/usr.sbin.mysqld 中的配置文件。

注意

在 Debian 平台上,MySQL 卸载的打包脚本目前无法处理 mysqld@ 实例。在删除或升级软件包之前,您必须首先手动停止任何额外的实例。

从 mysqld_safe 迁移到 systemd

因为在使用 systemd 管理 MySQL 的平台上没有安装 mysqld_safe,先前为该程序指定的选项(例如,在 [mysqld_safe][safe_mysqld] 选项组中)必须以另一种方式指定:

  • 一些 mysqld_safe 选项也被 mysqld 理解,并且可以从 [mysqld_safe][safe_mysqld] 选项组移动到 [mysqld] 组。这不包括 --pid-file--open-files-limit,或 --nice。要指定这些选项,请使用之前描述的 override.conf systemd 文件。

    注意

    在 systemd 平台上,不支持使用 [mysqld_safe][safe_mysqld] 选项组,并且可能导致意外行为。

  • 对于一些 mysqld_safe 选项,有替代的 mysqld 过程。例如,启用 syslog 记录的 mysqld_safe 选项是 --syslog,已被弃用。要将错误日志输出写入系统日志,请使用 Section 7.4.2.8, “Error Logging to the System Log” 中的说明。

  • mysqld_safe 不理解的选项可以在 override.conf 或环境变量中指定。例如,使用 mysqld_safe,如果服务器应该使用特定的内存分配库,则使用 --malloc-lib 选项指定。对于使用 systemd 管理服务器的安装,安排设置 LD_PRELOAD 环境变量,如之前描述的那样。

2.6 使用 Unbreakable Linux Network (ULN) 安装 MySQL

原文:dev.mysql.com/doc/refman/8.0/en/uln-installation.html

Linux 支持多种不同的解决方案来安装 MySQL,详见 第 2.5 节,“在 Linux 上安装 MySQL”。其中一种方法在本节中介绍,即从 Oracle 的 Unbreakable Linux Network (ULN) 安装。您可以在 linux.oracle.com/ 下找到有关 Oracle Linux 和 ULN 的信息。

要使用 ULN,您需要获取 ULN 登录并将用于安装的机器注册到 ULN。这在 ULN FAQ 中有详细描述。该页面还描述了如何安装和更新软件包。

社区和商业软件包都得到支持,每个都提供三个 MySQL 频道:

  • 服务器:MySQL 服务器

  • 连接器:MySQL Connector/C++、MySQL Connector/J、MySQL Connector/ODBC 和 MySQL Connector/Python。

  • 工具:MySQL Router、MySQL Shell 和 MySQL Workbench

社区频道对所有 ULN 用户都是可用的。

访问 oracle.linux.com 上的商业 MySQL ULN 软件包需要您提供具有有效商业许可证的 MySQL CSI(企业版或标准版)。截至目前,有效购买订单号为 60944、60945、64911 和 64912。适当的 CSI 会在 ULN GUI 界面中提供商业 MySQL 订阅频道。

一旦使用 ULN 安装了 MySQL,您可以在 第 2.5.7 节,“从本机软件库在 Linux 上安装 MySQL” 中找到有关启动和停止服务器等信息,特别是在 第 2.5.4 节,“使用来自 Oracle 的 RPM 软件包在 Linux 上安装 MySQL” 下。

如果您要将软件包源更改为使用 ULN,但不更改使用的 MySQL 构建版本,则请备份数据,删除现有的二进制文件,并用 ULN 中的文件替换它们。如果涉及到更改构建版本,我们建议备份为转储文件(mysqldumpmysqlpump 或来自 MySQL Shell 的备份实用程序),以防您需要在新的二进制文件放置后重���数据。如果这次转向 ULN 跨越了版本边界,请在继续之前参考本节:第三章,升级 MySQL

注意

Oracle Linux 8 从 MySQL 8.0.17 开始得到支持,社区工具和连接器频道是在 MySQL 8.0.24 发布时添加的。

2.7 在 Solaris 上安装 MySQL

原文:dev.mysql.com/doc/refman/8.0/en/solaris-installation.html

2.7.1 在 Solaris 上使用 Solaris PKG 安装 MySQL

注意

MySQL 8.0 支持 Solaris 11.4 及更高版本

Solaris 上的 MySQL 有多种不同的格式可用。

  • 有关使用本机 Solaris PKG 格式安装的信息,请参阅第 2.7.1 节,“在 Solaris 上使用 Solaris PKG 安装 MySQL”。

  • 要使用标准的 tar 二进制安装,请使用第 2.2 节,“在 Unix/Linux 上使用通用二进制文件安装 MySQL”中提供的注意事项。在安装之前或之后,查看本节末尾的 Solaris 特定注意事项。

注意

MySQL 5.7 依赖于 Oracle Developer Studio Runtime Libraries;但这不适用于 MySQL 8.0。

要获取 Solaris 的二进制 MySQL 分发包(tarball 或 PKG 格式),请访问dev.mysql.com/downloads/mysql/8.0.html

在 Solaris 上安装和使用 MySQL 时需要注意的其他事项:

  • 如果想要使用 mysql 用户和组来运行 MySQL,请使用 groupadduseradd 命令:

    groupadd mysql
    useradd -g mysql -s /bin/false mysql
    
  • 如果在 Solaris 上使用二进制 tarball 分发安装 MySQL,因为 Solaris 的 tar 无法处理长文件名,请使用 GNU tar (gtar) 解压分发包。如果你的系统上没有 GNU tar,请使用以下命令安装:

    pkg install archiver/gnu-tar
    
  • 你应该使用forcedirectio选项挂载任何你打算存储 InnoDB 文件的文件系统。(默认情况下,挂载是不带此选项的。)如果不这样做,在这个平台上使用 InnoDB 存储引擎时会导致性能显著下降。

  • 如果希望 MySQL 自动启动,可以将 support-files/mysql.server 复制到 /etc/init.d 并创建一个名为 /etc/rc3.d/S99mysql.server 的符号链接。

  • 如果有太多进程试图非常快速地连接到mysqld,你应该在 MySQL 日志中看到这个错误:

    Error in accept: Protocol error
    

    你可以尝试使用--back_log=50选项作为解决此问题的临时方法。

  • 要在 Solaris 上配置核心文件的生成,应该使用 coreadm 命令。由于在 setuid() 应用程序上生成核心文件的安全性影响,默认情况下,Solaris 不支持 setuid() 程序的核心文件。但是,你可��使用 coreadm 修改这种行为。如果为当前用户启用 setuid() 核心文件,它们将以 600 模式生成,并由超级用户拥有。

2.7.1 在 Solaris 上使用 Solaris PKG 安装 MySQL

原文:dev.mysql.com/doc/refman/8.0/en/solaris-installation-pkg.html

您可以使用本机 Solaris PKG 格式的二进制软件包安装 MySQL,而不是使用二进制 tarball 分发。

注意

MySQL 5.7 依赖于 Oracle Developer Studio Runtime Libraries;但这不适用于 MySQL 8.0。

要使用此软件包,请下载相应的mysql-VERSION-solaris11-PLATFORM.pkg.gz文件,然后解压缩它。例如:

$> gunzip mysql-*8.0.36*-solaris11-x86_64.pkg.gz

要安装新软件包,请使用pkgadd并按照屏幕提示操作。您必须具有 root 权限才能执行此���作:

$> pkgadd -d mysql-*8.0.36*-solaris11-x86_64.pkg

The following packages are available:
  1  mysql     MySQL Community Server (GPL)
               (i86pc) 8.0.36

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]:

PKG 安装程序安装所有所需的文件和工具,然后初始化您的数据库(如果不存在)。要完成安装,您应该根据安装结束时提供的说明设置 MySQL 的 root 密码。或者,您可以运行随安装提供的mysql_secure_installation脚本。

默认情况下,PKG 软件包将 MySQL 安装在根路径/opt/mysql下。当使用pkgadd时,您只能更改安装根路径,该命令可用于在不同的 Solaris 区域中安装 MySQL。如果需要安装在特定目录中,请使用二进制tar文件分发。

pkg安装程序将适当的 MySQL 启动脚本复制到/etc/init.d/mysql中。为了使 MySQL 能够自动启动和关闭,您应该在此文件和 init 脚本目录之间创建链接。例如,为了确保 MySQL 的安全启动和关闭,您可以使用以下命令添加正确的链接:

$> ln /etc/init.d/mysql /etc/rc3.d/S91mysql
$> ln /etc/init.d/mysql /etc/rc0.d/K02mysql

要删除 MySQL,已安装的软件包名称为mysql。您可以结合pkgrm命令来删除安装。

使用 Solaris 软件包文件格式进行升级时,必须在安装更新软件包之前删除现有安装。卸载软件包不会删除现有的数据库信息,只会删除服务器、二进制文件和支持文件。因此,典型的升级顺序是:

$> mysqladmin shutdown
$> pkgrm mysql
$> pkgadd -d mysql-*8.0.36*-solaris11-x86_64.pkg
$> mysqld_safe &
$> mysql_upgrade   # prior to MySQL 8.0.16 only

在执行任何升级之前,请查看第三章,升级 MySQL中的注意事项。

2.8 从源代码安装 MySQL

原文:dev.mysql.com/doc/refman/8.0/en/source-installation.html

2.8.1 源代码安装方法

2.8.2 源代码安装先决条件

2.8.3 源代码安装的 MySQL 布局

2.8.4 使用标准源代码发行版安装 MySQL

2.8.5 使用开发源代码树安装 MySQL

2.8.6 配置 SSL 库支持

2.8.7 MySQL 源代码配置选项

2.8.8 处理编译 MySQL 时的问题

2.8.9 MySQL 配置和第三方工具

2.8.10 生成 MySQL Doxygen 文档内容

从源代码构建 MySQL 可以让您自定义构建参数、编译器优化和安装位置。有关已知可运行 MySQL 的系统列表,请参阅 www.mysql.com/support/supportedplatforms/database.html

在从源代码进行安装之前,请检查 Oracle 是否为您的平台提供了预编译的二进制发行版,并且它是否适合您使用。我们非常努力确保我们的二进制文件是使用最佳选项构建的,以获得最佳性能。有关安装二进制发行版的说明,请参阅第 2.2 节,“在 Unix/Linux 上使用通用二进制文件安装 MySQL”。

如果您有兴趣使用与 Oracle 在您的平台上生成二进制发行版时使用的构建选项相同或类似的源代码构建 MySQL,请获取一个二进制发行版,解压缩它,并查看 docs/INFO_BIN 文件,其中包含有关该 MySQL 发行版的配置和编译信息。

警告

使用非标准选项构建 MySQL 可能会导致功能、性能或安全性降低。

MySQL 源代码包含使用 Doxygen 编写的内部文档。生成的 Doxygen 内容可在 dev.mysql.com/doc/index-other.html 上找到。还可以使用 第 2.8.10 节,“生成 MySQL Doxygen 文档内容” 中的说明从 MySQL 源代码发行版本地生成此内容。

2.8.1 源码安装方法

原文:dev.mysql.com/doc/refman/8.0/en/source-installation-methods.html

有两种方法可以从源码安装 MySQL:

  • 使用标准 MySQL 源码发行版。要获取标准发行版,请参阅第 2.1.3 节,“如何获取 MySQL”。有关从标准发行版构建的说明,请参阅第 2.8.4 节,“使用标准源码发行版安装 MySQL”。

    标准发行版可作为压缩的tar文件、Zip 存档或 RPM 软件包提供。发行文件的名称形式为mysql-*VERSION*.tar.gzmysql-*VERSION*.zipmysql-*VERSION*.rpm,其中VERSION是一个类似8.0.36的数字。源码发行版的文件名可以通过源码发行版名称是通用的且不包含平台名称来与预编译二进制发行版的文件名区分开,而二进制发行版的文件名包含指示发行版面向的系统类型的平台名称(例如pc-linux-i686winx64)。

  • 使用 MySQL 开发树。有关从开发树构建的信息,请参阅第 2.8.5 节,“使用开发源树安装 MySQL”。

2.8.2 源码安装先决条件

原文:dev.mysql.com/doc/refman/8.0/en/source-installation-prerequisites.html

从源码安装 MySQL 需要几个开发工具。一些工具无论您使用标准源码分发还是开发源码树都是必需的。其他工具要求取决于您使用的安装方法。

要从源码安装 MySQL,必须满足以下系统要求,无论使用哪种安装方法:

  • CMake,用作所有平台上的构建框架。CMake 可从www.cmake.org下载。

  • 一个良好的 make 程序。尽管一些平台自带其自己的 make 实现,但强烈建议使用 GNU make 3.75 或更高版本。它可能已经在您的系统上作为 gmake 可用。GNU make 可从www.gnu.org/software/make/获取。

    在类 Unix 系统上,包括 Linux,在终端中可以通过以下方式检查系统的 make 版本:

    $> make --version
    GNU Make 4.2.1
    
  • 从 MySQL 8.0.26 开始,MySQL 8.0 源码允许使用 C++17 特性。为了在所有支持的平台上启用必要的 C++17 支持级别,以下最低编译器版本适用:

    • Linux:GCC 10 或 Clang 5

    • macOS:XCode 10

    • Solaris:GCC 10

    • Windows:Visual Studio 2019

  • MySQL C API 需要 C++ 或 C99 编译器进行编译。

  • 支持加密连接、随机数生成的熵以及其他与加密相关的操作需要 SSL 库。默认情况下,构建使用主机系统上安装的 OpenSSL 库。要显式指定库,请在调用 CMake 时使用 WITH_SSL 选项。有关更多信息,请参见第 2.8.6 节,“配置 SSL 库支持”。

  • 构建 MySQL 需要 Boost C++ 库(但不需要使用它)。MySQL 编译需要特定的 Boost 版本。通常情况下,这是当前的 Boost 版本,但如果特定的 MySQL 源码分发需要不同的版本,则配置过程将停止,并显示需要的 Boost 版本。要获取 Boost 及其安装说明,请访问官方 Boost 网站。安装 Boost 后,根据在调用 CMake 时设置的 WITH_BOOST 选项的值,告诉构建系统 Boost 文件的放置位置。例如:

    cmake . -DWITH_BOOST=/usr/local/boost_*version_number*
    

    根据需要调整路径以匹配您的安装。

  • ncurses 库。

  • 充足的空闲内存。如果在编译大型源文件时遇到内部编译器错误等构建错误,可能是内存太少了。如果在虚拟机上编译,请尝试增加内存分配。

  • 如果你打算运行测试脚本,则需要 Perl。大多数类 Unix 系统都包含 Perl。对于 Windows,你可以使用ActiveState PerlStrawberry Perl

要从标准源分发安装 MySQL,需要以下工具之一来解压缩分发文件:

  • 对于.tar.gz压缩的tar文件:使用 GNU gunzip解压分发文件,然后使用一个合理的tar来解压缩。如果你的tar程序支持z选项,它可以同时解压缩和解包文件。

    GNU tar已知可用。某些操作系统提供的标准tar无法解压缩 MySQL 分发中的长文件名。你应该下载并安装 GNU tar,或者如果可用,使用预安装的 GNU tar 版本。通常这可作为gnutargtar或在 GNU 或自由软件目录中的tar,如/usr/sfw/bin/usr/local/bin中找到。GNU tar可从www.gnu.org/software/tar/获取。

  • 对于.zip Zip 归档文件:WinZip或其他能够读取.zip文件的工具。

  • 对于.rpm RPM 软件包:用于构建分发的rpmbuild程序会解压缩它。

要从开发源代码树安装 MySQL,需要以下额外的工具:

  • Git 修订控制系统是获取开发源代码所必需的。GitHub 帮助提供了在不同平台上下载和安装 Git 的说明。

  • bison 2.1 或更高版本,可从www.gnu.org/software/bison/获取。(不再支持版本 1。)尽可能使用最新版本的bison;如果遇到问题,请升级到更高版本,而不是回退到早期版本。

    bison可从www.gnu.org/software/bison/获取。Windows 上的bison可从gnuwin32.sourceforge.net/packages/bison.htm下载。下载标记为“Complete package, excluding sources”的软件包。在 Windows 上,bison的默认位置是C:\Program Files\GnuWin32目录。由于目录名中有空格,一些实用程序可能无法找到bison。此外,如果路径中有空格,Visual Studio 可能会简单地挂起。你可以通过安装到不包含空格的目录(例如C:\GnuWin32)来解决这些问题。

  • 在 Solaris Express 上,除了bison外,还必须安装m4m4可从www.gnu.org/software/m4/获取。

注意

如果你需要安装任何程序,请修改你的PATH环境变量,包括程序所在的任何目录。参见第 6.2.9 节,“设置环境变量”。

如果遇到问题需要提交错误报告,请按照第 1.5 节,“如何报告错误或问题”中的说明。

2.8.3 MySQL 源安装布局

原文:dev.mysql.com/doc/refman/8.0/en/source-installation-layout.html

默认情况下,当您从源代码编译安装 MySQL 后,安装步骤会将文件安装在/usr/local/mysql目录下。安装目录下的组件位置与二进制发行版相同。请参阅表 2.3,“通用 Unix/Linux 二进制包的 MySQL 安装布局”,以及第 2.3.1 节,“Microsoft Windows 上的 MySQL 安装布局”。要配置与默认值不同的安装位置,请使用第 2.8.7 节,“MySQL 源配置选项”中描述的选项。

2.8.4 使用标准源分发安装 MySQL

原文:dev.mysql.com/doc/refman/8.0/en/installing-source-distribution.html

要从标准源分发安装 MySQL:

  1. 确保你的系统满足第 2.8.2 节,“安装源的先决条件”中列出的工具要求。

  2. 使用第 2.1.3 节,“如何获取 MySQL”中的说明获取分发文件。

  3. 使用本节中的说明配置、构建和安装分发。

  4. 使用第 2.9 节,“后安装设置和测试”中的说明执行后安装程序。

MySQL 在所有平台上使用CMake作为构建框架。这里给出的说明应该能帮助你生成一个可工作的安装。有关使用CMake构建 MySQL 的更多信息,请参见使用 CMake 构建 MySQL 服务器。

如果你从源码 RPM 开始,请使用以下命令生成一个二进制 RPM,以便安装。如果你没有rpmbuild,请使用rpm代替。

$> rpmbuild --rebuild --clean MySQL-*VERSION*.src.rpm

结果是一个或多个二进制 RPM 软件包,你可以按照第 2.5.4 节,“使用 Oracle 的 RPM 软件包在 Linux 上安装 MySQL”中的指示进行安装。

从压缩的tar文件或 Zip 存档源分发安装的顺序与从通用二进制分发安装的过程类似(参见第 2.2 节,“在 Unix/Linux 上使用通用二进制安装 MySQL”),只是它适用于所有平台,并包括配置和编译分发的步骤。例如,在 Unix 上使用压缩的tar文件源分发,基本安装命令顺序如下:

# Preconfiguration setup
$> groupadd mysql
$> useradd -r -g mysql -s /bin/false mysql
# Beginning of source-build specific instructions
$> tar zxvf mysql-*VERSION*.tar.gz
$> cd mysql-*VERSION*
$> mkdir bld
$> cd bld
$> cmake ..
$> make
$> make install
# End of source-build specific instructions
# Postinstallation setup
$> cd /usr/local/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

源码构建特定说明的更详细版本如下所示。

注意

此处显示的过程不设置任何 MySQL 帐户的密码。在按照此过程后,请继续到第 2.9 节,“后安装设置和测试”进行后安装设置和测试。

  • 执行预配置设置

  • 获取并解压分发

  • 配置分发

  • 构建分发

  • 安装分发

  • 执行安装后设置

执行预配置设置

在 Unix 系统上,设置拥有数据库目录并应用于运行和执行 MySQL 服务器的mysql用户,以及该用户所属的组。有关详细信息,请参见创建 mysql 用户和组。然后以mysql用户的身份执行以下步骤,除非另有说明。

获取并解压缩分发

选择要解压缩分发的目录,并更改位置进入其中。

使用第 2.1.3 节,“获取 MySQL”的说明获取分发文件。

将分发解压缩到当前目录:

  • 要解压缩压缩的tar文件,如果支持z选项,tar可以解压缩和解包分发:

    $> tar zxvf mysql-*VERSION*.tar.gz
    

    如果您的tar不支持z选项,请使用gunzip解压缩分发,然后使用tar解包:

    $> gunzip < mysql-*VERSION*.tar.gz | tar xvf -
    

    或者,CMake可以解压缩和解包分发:

    $> cmake -E tar zxvf mysql-*VERSION*.tar.gz
    
  • 要解压缩 Zip 存档,请使用WinZip或另一个可以读取.zip文件的工具。

解压缩分发文件会创建一个名为mysql-*VERSION*的目录。

配置分发

将位置更改为解压缩分发的顶级目录:

$> cd mysql-*VERSION*

在源树之外构建以保持树的清洁。如果顶级源目录在您当前的工作目录下名为mysql-src,您可以在同一级别的一个名为build的目录中构建。创建该目录并进入其中:

$> mkdir bld
$> cd bld

配置构建目录。最小配置命令不包括任何选项以覆盖配置默认值:

$> cmake ../mysql-src

构建目录不需要在源树之外。例如,您可以在顶级源树下的名为build的目录中构建。为此,以mysql-src作为当前工作目录,创建目录build,然后进入该目录:

$> mkdir build
$> cd build

配置构建目录。最小配置命令不包括任何选项以覆盖配置默认值:

$> cmake ..

如果您在同一级别上有多个源树(例如,构建多个 MySQL 版本),第二种策略可能更有优势。第一种策略将所有构建目录放在同一级别,这要求您为每个目录选择一个唯一的名称。使用第二种策略,您可以在每个源树中使用相同的名称来构建目录。以下说明假定采用第二种策略。

在 Windows 上,指定开发环境。例如,以下命令分别为 32 位或 64 位构建配置 MySQL:

$> cmake .. -G "Visual Studio 12 2013"

$> cmake .. -G "Visual Studio 12 2013 Win64"

在 macOS 上,使用 Xcode IDE:

$> cmake .. -G Xcode

当你运行Cmake时,可能需要在命令行中添加选项。以下是一些示例:

  • -DBUILD_CONFIG=mysql_release: 使用 Oracle 用于生成官方 MySQL 发布的二进制分发的相同构建选项配置源代码。

  • -DCMAKE_INSTALL_PREFIX=*dir_name*: 配置安装在特定位置下的分发。

  • -DCPACK_MONOLITHIC_INSTALL=1: 使make package生成单个安装文件而不是多个文件。

  • -DWITH_DEBUG=1: 使用调试支持构建分发。

要获取更详尽的选项列表,请参见第 2.8.7 节“MySQL 源配置选项”。

要列出配置选项,请使用以下命令之一:

$> cmake .. -L   # overview

$> cmake .. -LH  # overview with help text

$> cmake .. -LAH # all params with help text

$> ccmake ..     # interactive display

如果CMake失败,可能需要使用不同选项再次运行以重新配置。如果重新配置,请注意以下事项:

  • 如果CMake在之前已经运行过后再次运行,可能会使用在之前调用期间收集的信息。这些信息存储在CMakeCache.txt中。当CMake启动时,它会查找该文件,并在假设信息仍然正确的情况下读取其内容。当你重新配置时,这种假设是无效的。

  • 每次运行CMake后,必须再次运行make重新编译。但是,你可能需要先删除以前构建时使用不同配置选项编译的旧对象文件。

为了防止旧的对象文件或配置信息被使用,在 Unix 上重新运行CMake之前,在构建目录中运行以下命令:

$> make clean
$> rm CMakeCache.txt

或者,在 Windows 上:

$> devenv MySQL.sln /clean
$> del CMakeCache.txt

在向MySQL 社区 Slack询问之前,请检查CMakeFiles目录中的文件,以获取有关失败的有用信息。要提交错误报告,请使用第 1.5 节“如何报告错误或问题”中的说明。

构建分发

在 Unix 上:

$> make
$> make VERBOSE=1

第二个命令设置VERBOSE以显示每个编译源的命令。

在使用 GNU make并已安装为gmake的系统上,请改用gmake

在 Windows 上:

$> devenv MySQL.sln /build RelWithDebInfo

如果您已经到了编译阶段,但分发包无法构建,请参阅第 2.8.8 节,“处理 MySQL 编译问题”以获取帮助。如果这不能解决问题,请按照第 1.5 节,“如何报告错误或问题”中的说明将问题输入到我们的错误数据库中。如果您已安装了所需工具的最新版本,但它们在尝试处理我们的配置文件时崩溃,请也报告这个问题。但是,如果您遇到command not found错误或类似的所需工具问题,请不要报告。相反,请确保所有所需工具都已安装,并且您的PATH变量设置正确,以便您的 shell 可以找到它们。

安装分发包

在 Unix 上:

$> make install

这将安装文件在配置的安装目录下(默认为/usr/local/mysql)。您可能需要以root身份运行命令。

要在特定目录中安装,请在命令行中添加一个DESTDIR参数:

$> make install DESTDIR="/opt/mysql"

或者,生成安装包文件,您可以在喜欢的位置安装:

$> make package

此操作会生成一个或多个.tar.gz文件,可以像通用二进制分发包一样安装。请参阅第 2.2 节,“在 Unix/Linux 上使用通用二进制文件安装 MySQL”。如果使用-DCPACK_MONOLITHIC_INSTALL=1运行CMake,则该操作会生成一个单一文件。否则,它会生成多个文件。

在 Windows 上,生成数据目录,然后创建一个.zip归档安装包:

$> devenv MySQL.sln /build RelWithDebInfo /project initial_database
$> devenv MySQL.sln /build RelWithDebInfo /project package

您可以在喜欢的位置安装生成的.zip归档。请参阅第 2.3.4 节,“在 Microsoft Windows 上使用noinstall ZIP 归档安装 MySQL”。

执行后安装设置

安装过程的其余部分涉及设置配置文件,创建核心数据库和启动 MySQL 服务器。有关说明,请参阅第 2.9 节,“后安装设置和测试”。

注意

最初列在 MySQL 授权表中的帐户没有密码。启动服务器后,您应该使用第 2.9 节,“后安装设置和测试”中的说明为它们设置密码。

2.8.5 使用开发源树安装 MySQL

原文:dev.mysql.com/doc/refman/8.0/en/installing-development-tree.html

本节描述了如何从托管在 GitHub 上的最新开发源代码安装 MySQL。要从这个仓库托管服务获取 MySQL Server 源代码,您可以设置一个本地 MySQL Git 仓库。

GitHub 上,MySQL Server 和其他 MySQL 项目可以在 MySQL 页面找到。MySQL Server 项目是一个包含多个 MySQL 系列分支的单个仓库。

  • 从开发源安装的先决条件

  • 设置 MySQL Git 仓库

从开发源安装的先决条件

要从开发源树安装 MySQL,您的系统必须满足第 2.8.2 节,“源码安装先决条件”中列出的工具要求。

设置 MySQL Git 仓库

要在您的计算机上设置一个 MySQL Git 仓库:

  1. 将 MySQL Git 仓库克隆到您的计算机上。以下命令将 MySQL Git 仓库克隆到一个名为 mysql-server 的目录中。初始下载可能需要一些时间才能完成,这取决于您的连接速度。

    $> git clone https://github.com/mysql/mysql-server.git
    Cloning into 'mysql-server'...
    remote: Counting objects: 1198513, done.
    remote: Total 1198513 (delta 0), reused 0 (delta 0), pack-reused 1198513
    Receiving objects: 100% (1198513/1198513), 1.01 GiB | 7.44 MiB/s, done.
    Resolving deltas: 100% (993200/993200), done.
    Checking connectivity... done.
    Checking out files: 100% (25510/25510), done.
    
  2. 克隆操作完成后,您本地的 MySQL Git 仓库的内容会类似于以下内容:

    ~> cd mysql-server
    ~/mysql-server> ls
    client             extra                mysys              storage
    cmake              include              packaging          strings
    CMakeLists.txt     INSTALL              plugin             support-files
    components         libbinlogevents      README             testclients
    config.h.cmake     libchangestreams     router             unittest
    configure.cmake    libmysql             run_doxygen.cmake  utilities
    Docs               libservices          scripts            VERSION
    Doxyfile-ignored   LICENSE              share              vio
    Doxyfile.in        man                  sql                win
    doxygen_resources  mysql-test           sql-common
    
  3. 使用 git branch -r 命令查看 MySQL 仓库的远程跟踪分支。

    ~/mysql-server> git branch -r
      origin/5.7
      origin/8.0
      origin/HEAD -> origin/trunk
      origin/cluster-7.4
      origin/cluster-7.5
      origin/cluster-7.6
      origin/trunk
    
  4. 要查看本地仓库中检出的分支,请发出 git branch 命令。当您克隆 MySQL Git 仓库时,最新的 MySQL 分支会自动检出。星号标识活动分支。

    ~/mysql-server$ git branch
    * trunk
    
  5. 要检出较早的 MySQL 分支,请运行 git checkout 命令,并指定分支名称。例如,要检出 MySQL 5.7 分支:

    ~/mysql-server$ git checkout 5.7
    Checking out files: 100% (9600/9600), done.
    Branch 5.7 set up to track remote branch 5.7 from origin.
    Switched to a new branch '5.7'
    
  6. 要获取在初始设置 MySQL Git 仓库后进行的更改,请切换到要更新的分支并发出 git pull 命令:

    ~/mysql-server$ git checkout 8.0
    ~/mysql-server$ git pull
    

    要查看提交历史,请使用 git log 命令:

    ~/mysql-server$ git log
    

    您还可以在 GitHub 的 MySQL 网站上浏览提交历史和源代码。

    如果您看到有变化或代码有疑问的地方,请在 MySQL Community Slack 上提问。

  7. 在克隆了 MySQL Git 仓库并检出了要构建的分支后,您可以从源代码构建 MySQL 服务器。有关说明,请参阅第 2.8.4 节,“使用标准源分发安装 MySQL”,不过您可以跳过获取和解压分发的部分。

    在生产机器上小心安装来自分发源代码树的构建。安装命令可能会覆盖您的实时发布安装。如果您已经安装了 MySQL 并且不想覆盖它,请使用与生产服务器不同的值运行CMake,分别为CMAKE_INSTALL_PREFIXMYSQL_TCP_PORTMYSQL_UNIX_ADDR选项。有关防止多个服务器相互干扰的其他信息,请参见第 7.8 节,“在一台机器上运行多个 MySQL 实例”。

    通过您的新安装来进行严格测试。例如,尝试让新功能崩溃。首先运行make test。请参阅 MySQL 测试套件。

2.8.6 配置 SSL 库支持

原文:dev.mysql.com/doc/refman/8.0/en/source-ssl-library-configuration.html

支持加密连接需要 SSL 库,用于随机数生成的熵,以及其他与加密相关的操作。

如果你从源代码分发中编译 MySQL,CMake 默认配置分发以使用已安装的 OpenSSL 库。

要使用 OpenSSL 进行编译,请按照以下步骤:

  1. 确保你的系统上安装了 OpenSSL 1.0.1 或更新版本。如果安装的 OpenSSL 版本旧于 1.0.1,CMake 在 MySQL 配置时会产生错误。如果需要获取 OpenSSL,请访问 www.openssl.org

  2. WITH_SSL CMake 选项确定用于编译 MySQL 的 SSL 库(参见 Section 2.8.7, “MySQL Source-Configuration Options”)。默认值是 -DWITH_SSL=system,使用 OpenSSL。要明确指定此选项,请指定该选项。例如:

    cmake . -DWITH_SSL=system
    

    该命令配置分发以使用已安装的 OpenSSL 库。或者,要明确指定 OpenSSL 安装路径,请使用以下语法。如果你安装了多个版本的 OpenSSL,可以防止 CMake 选择错误的版本:

    cmake . -DWITH_SSL=*path_name*
    

    从 MySQL 8.0.30 开始,支持替代 OpenSSL 系统包,可以在 EL7 上使用 WITH_SSL=openssl11 或在 EL8 上使用 WITH_SSL=openssl3。由于这些替代版本的 OpenSSL 不支持 LDAP 和 Kerberos 等认证插件,因此这些插件被禁用。

  3. 编译并安装分发。

要检查 mysqld 服务器是否支持加密连接,请检查 have_ssl 系统变量的值:

mysql> SHOW VARIABLES LIKE 'have_ssl';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_ssl      | YES   |
+---------------+-------+

如果值为 YES,则服务器支持加密连接。如果值为 DISABLED,则服务器能够支持加密连接,但未使用适当的 --ssl-*xxx* 选项启动以启用加密连接;请参阅 Section 8.3.1, “Configuring MySQL to Use Encrypted Connections”。

posted @ 2024-06-23 00:40  绝不原创的飞龙  阅读(9)  评论(0编辑  收藏  举报