暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

原创 由迪 2020-09-21
610

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

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

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

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

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

  • **方法1:**在标准选项文件之一中为所有服务指定选项。为此,请对每个服务器使用不同的服务名称。假设你要运行5.5.9 的mysqld使用的服务名称 mysqld1和8.0.23 的mysqld使用的服务名称 mysqld2。在这种情况下,可以将 [mysqld1]组用于5.5.9,将 [mysqld2]组用于8.0.23。例如,您可以这样设置C:\my.cnf

    # options for mysqld1 service [mysqld1] basedir = C:/mysql-5.5.9 port = 3307 enable-named-pipe socket = mypipe1 # options for mysqld2 service [mysqld2] basedir = C:/mysql-8.0.23 port = 3308 enable-named-pipe socket = mypipe2

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

    C:\> C:\mysql-5.5.9\bin\mysqld --install mysqld1
    C:\> C:\mysql-8.0.23\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.5.9 mysqld指定选项 ,创建一个如下所示的文件 C:\my-opts1.cnf

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

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

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

    如下安装服务(在一行中输入每个命令):

    C:\> C:\mysql-5.5.9\bin\mysqld --install mysqld1
               --defaults-file=C:\my-opts1.cnf
    C:\> C:\mysql-8.0.23\bin\mysqld --install mysqld2
               --defaults-file=C:\my-opts2.cnf
    

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

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

要删除多个服务,请为每个服务使用SC DELETE *mysqld_service_name*。或者, 对每一个使用mysqld --remove,在--remove选项之后指定服务名称 。如果服务名称是默认名称(MySQL),则可以在使用mysqld --remove时将其忽略。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论