2.3.12. 以Windows服务方式启动MySQL

NT家族 (Windows NT2000,XP2003)中,建议将MySQL安装为Windows服务,当Windows启动、停止时,MySQL也自动启动、停止。还可以从命令行使用NET命令,或使用图形Services工具来控制AMySQL服务器。

Windows控制面板(Windows 2000,XPServer 2003管理工具下面)中可以看见Services工具(Windows Service Control Manager)建议从命令行安装活卸载服务器时关闭Services工具。这样可以防止许多错误。

安装MySQL Windows服务之前,应当使用下面的命令先停止当前正运行的服务器:

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

注释:如果MySQL root用户账户有密码,你需要调用命令 C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqladmin -u root -p shutdown并根据提示输入密码。

该命令调用MySQL管理工具mysqladmin,连接服务器并告知它关闭服务。该命令使用MySQL root用户连接,这是MySQL权限系统中的默认管理账户。请注意MySQL权限系统中的用户完全独立于Windows下的登录用户。

使用该命令安装服务器

C\> mysqld --install

如果只使用服务器名安装mysqld时有问题,尝试使用全路径名来安装。例如:

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

你还可以将MySQL bin目录的路径加到Windows系统PATH环境变量中:

·         右击Windows桌面上的My Computer(我的计算机)图标,选择Properties(属性)。

·         然后从出现的System Properties菜单中选择Advanced(高级)标签,然后点击Environment Variables环境变量)按钮。

·         选择System Variables系统变量)下面的Path(路径),然后点击Edit编辑)按钮。将弹出Edit System Variable(编辑系统变量)对话框。

·         将光标放到标记Variable Value变量值)处的文本的后面。(使用End键确保光标位于文本的最后)。然后输入MySQL bin目录   的完整路径(例如,C:\Program Files\MySQL\MySQL Server 5.1\bin),请注意应使用分号将该路径与该域内的其它值隔离开。一次关闭该对话框和各个对话框,点击OK直到打开的所有对话框被关闭。你现在可以在DOS提示符下从系统的任何目录输入MySQL可执行程序名来调用MySQL可执行程序,而不必提供路径名。包括服务器、MySQL客户端和所有MySQL命令行实用程序,例如mysqladminmysqldump

·         请注意在同一个机器上运行多个MySQL服务器时,不需要在Windows PATH中加入MySQL bin目录。

警告:编辑系统PATH时必须特别注意;意外删除或修改已有路径值会造成系统故障甚至瘫痪。

服务安装命令不会启动服务器。在本节后面将给出相关指令。

安装服务时,可以使用MySQL 5.1中的下面的参数:

·         可以直接在--install选项后面指定服务名。默认服务名是MySQL

·         如果给出了服务名,后面可以跟一个选项。一般情况,应当为defaults-file=file_name,指定选项文件的名称,服务器启动时应当从中读取选项。

可以使用单个选项代替--defaults-file,但是不提倡这样做。--defaults-file更加灵活一些,因为你可以将多个服务器启动选项放入命名的选项文件中。

·         可以在服务名后面指定一个--local-service选项。这样服务器运行时使用LocalService Windows账户,只具有有限的系统权限。该账户只适用于Windows XP或更新版本。如果服务名后面同时跟有--defaults-file--local-service,二者可以按任何顺序排放。

对于Windows MySQL服务器,根据下面规则确定服务器使用的服务名和选项文件:

·         如果在服务安装命令中,没有在--install选项后面指定了服务名或使用默认服务名(MySQL),服务器则使用MySQL服务名并从标准选项文件的[mysqld]组读取选项。

·         如果在服务安装命令中,在--install选项后面指定的服务名不是默认服务名(MySQL)。则从具有相同服务名的组中读取选项,并从标准选项文件读取选项。

服务器还从标准选项文件的[mysqld]组读取选项。你可以使用[mysqld]组中的选项用于所有MySQL 服务,还可以使用具有相同服务名的组,用于该服务名所对应的服务器。

·         如果在服务安装命令中,在服务名后面指定了--defaults-file选项,服务器只从命名文件的[mysqld]组中读取选项,忽略标准选项文件。

对于更复杂的例子可以考虑使用命令:

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

该命令中,--install选项后面给出了默认服务名(MySQL)。如果未给出--defaults-file选项,该命令可以让服务器从标准选项文件的[mysqld]组中读数。由于提供了--defaults-file选项,服务器只从命名文件的[mysqld]组读取选项。

还可以在启动MySQL服务之前,在Windows Services工具中指定启动参数选项。

MySQL服务器安装为服务后,Windows启动时自动启动服务。还可以从Services工具直接启动服务,或使用命令NET START MySQLNET命令忽略大小写。

做为服务运行时,mysqld不能访问控制台窗口,因此看不见任何消息。如果mysqld未启动,检查错误日志看看服务器是否写入了显示问题原因的任何消息。错误日志位于MySQL数据目录中(例如,C:\Program Files\MySQL\MySQL Server 5.1\data),是带后缀.err的文件。

如果MySQL服务器安装为服务,并且服务正运行,Windows关闭时自动停止服务。还可以通过Services工具、NET STOP MySQL命令或 mysqladmin shutdown命令手动停止服务器。

如果不想在引导过程中自动启动服务,还可以将服务设置为手动启动模式。实现的方法是使用--install-manual选项而非--install选项:

C\> C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld --install-manual

要想卸载服务器,如果服务正运行则应首先使用命令NET STOP MYSQL停止服务。然后使用--remove选项卸载服务:

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

如果mysqld不是服务,可以从命令行启动它。详细说明参见2.3.11节,“从Windows命令行启动MySQL”

如果在安装过程中遇到问题,请参阅2.3.14节,“在Windows环境下对MySQL安装的故障诊断与排除”

关注编程学问公众号