Documentation Home

5.7.2.2 启动多个MySQL实例为Windows服务

在 Windows 上,MySQL 服务器可以作为 Windows 服务运行。安装、控制和删除单个 MySQL 服务的过程在 第 2.3.4.8 节,“将 MySQL 作为 Windows 服务启动”中描述。

要设置多个 MySQL 服务,您必须确保每个实例使用不同的服务名称以及每个实例必须唯一的其他参数。

对于以下说明,假设您 要从分别安装在 和的两个不同版本的 MySQL运行mysqld服务器。(如果您将 5.7.9 作为生产服务器运行,但也想使用 5.7.40 进行测试,则可能会出现这种情况。) C:\mysql-5.7.9C:\mysql-5.7.40

要将 MySQL 安装为 Windows 服务,请使用 --install--install-manual 选项。有关这些选项的信息,请参阅 第 2.3.4.8 节,“将 MySQL 作为 Windows 服务启动”

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

  • 方法 1:在其中一个标准选项文件中指定所有服务的选项。为此,请为每个服务器使用不同的服务名称。假设您要使用服务名称运行 5.7.9 mysqld,并使用服务 名称运行 mysqld15.7.40 mysqldmysqld2。在这种情况下,您可以使用 [mysqld1]5.7.9 的 [mysqld2]组和 5.7.40 的组。例如,您可以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-5.7.40
    port = 3308
    enable-named-pipe
    socket = mypipe2

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

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

    要启动服务,请使用服务管理器,或 使用具有适当服务名称的 NET STARTSC START :

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

    要停止服务,请使用服务管理器,或使用 带有适当服务名称的 NET STOPSC STOP :

    C:\> SC STOP mysqld1
    C:\> SC STOP mysqld2
  • 方法 2:在单独的文件中为每个服务器指定选项,并 --defaults-file在安装服务时使用以告知每个服务器要使用的文件。在这种情况下,每个文件都应使用 [mysqld]组列出选项。

    使用这种方法,要为 5.7.9 mysqld 指定选项 ,请创建一个 C:\my-opts1.cnf如下所示的文件:

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

    对于 5.7.40 mysqld,创建一个C:\my-opts2.cnf如下所示的文件:

    [mysqld]
    basedir = C:/mysql-5.7.40
    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-5.7.40\bin\mysqld --install mysqld2
               --defaults-file=C:\my-opts2.cnf

    当您将 MySQL 服务器安装为服务并使用 --defaults-file选项时,服务名称必须位于选项之前。

    安装服务后,以与前面示例相同的方式启动和停止它们。

要删除多个服务,请对每个服务使用SC DELETE 。mysqld_service_name或者,对每一个都使用mysqld --remove--remove ,在选项 后面指定一个服务名称 。如果服务名称是默认的 ( MySQL),您可以在使用mysqld --remove时省略它。