2.3.4.8 将 MySQL 作为 Windows 服务启动

在 Windows 上,建议的运行 MySQL 的方法是将其安装为 Windows 服务,以便在 Windows 启动和停止时 MySQL 自动启动和停止。也可以使用 NET 命令或图形化的 Services Util 从命令行控制作为服务安装的 MySQL 服务器。通常,要将 MySQL 安装为 Windows 服务,应使用具有 Management 员权限的帐户登录。

Note

MySQL Notifier也可以用来监视 MySQL 服务的状态。

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

安装服务

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

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

Note

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

此命令调用 MySQLManagementUtilmysqladmin连接到服务器并告诉它关闭。该命令以 MySQL root用户身份连接,该用户是 MySQL 授权系统中的默认 Management 帐户。

Note

MySQL 授权系统中的用户完全独立于 Windows 下的任何 os 用户。

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

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

service-installation 命令不会启动服务器。有关说明,将在本节后面给出。

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

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

Warning

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

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

可以使用--defaults-file以外的其他选项,但不建议使用。 --defaults-file更加灵活,因为它使您可以通过将多个启动选项放置在命名的选项文件中来为服务器指定多个启动选项。

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

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

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

在此,默认服务名称(MySQL)在--install选项后给出。如果未提供--defaults-file选项,则此命令将导致服务器从标准选项文件中读取[mysqld]组。但是,由于存在--defaults-file选项,因此服务器从[mysqld]选项组(仅从命名文件)读取选项。

Note

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

在启动 MySQL 服务之前,您还可以在 Windows 服务 Util 中将选项指定为启动参数。

最后,在尝试启动 MySQL 服务之前,请确保要运行该服务的 os 用户的用户变量%TEMP%%TMP%(如果设置了%TMPDIR%,还应设置%TMPDIR%)指向该用户所在的文件夹具有写权限。运行 MySQL 服务的默认用户为LocalSystem,其%TEMP%%TMP%的默认值为C:\Windows\Temp,默认情况下目录LocalSystem具有写访问权限。但是,如果对该默认设置进行了任何更改(例如,对运行该服务的用户或提及的用户变量进行了更改,或者已使用--tmpdir选项将临时目录放在其他位置),则 MySQL 服务可能无法运行,因为尚未向适当的用户授予对临时目录的写访问权。

启动服务

将 MySQL 服务器实例作为服务安装后,Windows 每次启动时 Windows 都会自动启动该服务。也可以从 Services Util 或通过使用 sc start * mysqld_service_name *或 NET START * mysqld_service_name *命令立即启动该服务。 SCNET 命令不区分大小写。

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

当 MySQL 服务器已作为服务安装且服务正在运行时,Windows 会在 Windows 关闭时自动停止服务。也可以使用ServicesUtil, sc stop * mysqld_service_name *命令, NET START * mysqld_service_name *命令或mysqladmin shutdown命令手动停止服务器。

如果您不希望服务器在引导过程中自动启动,则还可以选择将服务器安装为手动服务。为此,请使用--install-manual选项而不是--install选项:

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

要删除作为服务安装的服务器,请首先通过执行 SC STOP * mysqld_service_name *或 NET STOP * mysqld_service_name *将其停止运行。然后使用 SC DELETE * mysqld_service_name *将其删除:

C:\> SC DELETE mysql

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

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

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

如果在安装过程中遇到困难,请参阅第 2.3.5 节“对 Microsoft Windows MySQL Server 安装进行故障排除”

有关停止或删除 Windows 服务的更多信息,请参见第 5.7.2.2 节“作为 Windows 服务启动多个 MySQL 实例”

首页