#### 5.8.2.2 启动多个 MySQL 实例作为 Windows 服务

在 Windows 上，MySQL 服务器可以作为 Windows 服务运行。安装、控制和删除单个 MySQL 服务的过程在[第 2.3.4.8 节，“将 MySQL 作为 Windows 服务启动”](windows-start-service.html).

要设置多个 MySQL 服务，除了每个实例必须唯一的其他参数之外，您必须确保每个实例使用不同的服务名称。

对于以下说明，假设您要运行[**mysqld**](mysqld.html)服务器来自安装在的两个不同版本的 MySQL`C:\mysql-5.7.9`和`C:\mysql-8.0.28`， 分别。（如果您将 5.7.9 作为生产服务器运行，但又想使用 8.0.28 进行测试，则可能会出现这种情况。）

要将 MySQL 安装为 Windows 服务，请使用`- 安装`要么`--安装手册`选项。有关这些选项的信息，请参阅[第 2.3.4.8 节，“将 MySQL 作为 Windows 服务启动”](windows-start-service.html).

根据以上信息，您可以通过多种方式设置多个服务。以下说明描述了一些示例。在尝试其中任何一个之前，请关闭并删除任何现有的 MySQL 服务。

-   **方法一：**在标准选项文件之一中指定所有服务的选项。为此，请为每个服务器使用不同的服务名称。假设您要运行 5.7.9[**mysqld**](mysqld.html)使用服务名称`mysqld1`和 8.0.28[**mysqld**](mysqld.html)使用服务名称`mysqld2`.在这种情况下，您可以使用`[mysqld1]`5.7.9 组和`[mysqld2]`8.0.28 组。例如，您可以设置`C:\my.cnf`像这样：

    ```
    # options for mysqld1 service
    [mysqld1]
    basedir = C:/mysql-5.7.9
    port = 3307
    enable-named-pipe
    socket = mypipe1

    # options for mysqld2 service
    [mysqld2]
    basedir = C:/mysql-8.0.28
    port = 3308
    enable-named-pipe
    socket = mypipe2
    ```

    按如下方式安装服务，使用完整的服务器路径名以确保 Windows 为每个服务注册正确的可执行程序：

    ```
    C:\> C:\mysql-5.7.9\bin\mysqld --install mysqld1
    C:\> C:\mysql-8.0.28\bin\mysqld --install mysqld2
    ```

    要启动服务，请使用服务管理器，或**网络开始**要么**SC 开始**使用适当的服务名称：

    ```
    C:\> SC START mysqld1
    C:\> SC START mysqld2
    ```

    要停止服务，请使用服务管理器，或使用**净停止**要么**停止**使用适当的服务名称：

    ```
    C:\> SC STOP mysqld1
    C:\> SC STOP mysqld2
    ```

-   **方法二：**在单独的文件中为每个服务器指定选项并使用[`--defaults 文件`](option-file-options.html#option_general_defaults-file)当您安装服务时告诉每个服务器使用什么文件。在这种情况下，每个文件都应该使用`[mysqld]`团体。

    使用这种方法，为 5.7.9 指定选项[**mysqld**](mysqld.html), 创建一个文件`C:\my-opts1.cnf`看起来像这样：

    ```
    [mysqld]
    basedir = C:/mysql-5.7.9
    port = 3307
    enable-named-pipe
    socket = mypipe1
    ```

    对于 8.0.28[**mysqld**](mysqld.html), 创建一个文件`C:\my-opts2.cnf`看起来像这样：

    ```
    [mysqld]
    basedir = C:/mysql-8.0.28
    port = 3308
    enable-named-pipe
    socket = mypipe2
    ```

    按如下方式安装服务（在一行中输入每个命令）：

    ```
    C:\> C:\mysql-5.7.9\bin\mysqld --install mysqld1
               --defaults-file=C:\my-opts1.cnf
    C:\> C:\mysql-8.0.28\bin\mysqld --install mysqld2
               --defaults-file=C:\my-opts2.cnf
    ```

    当您将 MySQL 服务器安装为服务并使用[`--defaults 文件`](option-file-options.html#option_general_defaults-file)选项，服务名称必须在选项之前。

    安装服务后，以与上例相同的方式启动和停止它们。

    要删除多个服务，请使用**SC 删除*`mysqld_service_name`***每一个人。或者，使用[**mysqld --删除**](mysqld.html)对于每一个，在后面指定一个服务名称[`- 消除`](server-options.html#option_mysqld_remove)选项。如果服务名称是默认的 (`MySQL`)，使用时可以省略[**mysqld --删除**](mysqld.html).
