在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 START或SC START:
C:\> SC START mysqld1 C:\> SC START mysqld2要停止服务,请使用服务管理器,或使用 具有适当服务名称的NET STOP或SC 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时将其忽略。




