On Windows, the recommended way to run MySQL is to install it as a Windows service, so that MySQL starts and stops automatically when Windows starts and stops, and can be managed using the service manager framework. A MySQL server installed as a service can also be controlled from the command line using NET commands, or with the graphical Services utility. Generally, to install MySQL as a Windows service you should be logged in using an account that has administrator rights.
The Services utility (the Windows Service Control Manager) can be found in the Windows Control Panel (under Administrative Tools on Windows 2000, XP, Vista, and Server 2003). To avoid conflicts, it is advisable to close the Services utility while performing server installation or removal operations from the command line.
Before installing MySQL as a Windows service, you should first stop the current server if it is running by using the following command:
"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqladmin"
-u root shutdown
If the MySQL
root user account has a
password, you need to invoke mysqladmin
-p option and supply the password
This command invokes the MySQL administrative utility
mysqladmin to connect to the server and tell
it to shut down. The command connects as the MySQL
root user, which is the default
administrative account in the MySQL grant system. Note that
users in the MySQL grant system are wholly independent from any
login users under Windows.
Install the server as a service using this command:
"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld" --install
The service-installation command does not start the server.
The following additional arguments can be used when installing the service:
You can specify a service name immediately following the
--install option. The default service name
If a service name is given, it can be followed by a single
option. By convention, this should be
to specify the name of an option file from which the server
should read options when it starts.
The use of a single option other than
--defaults-file is possible
--defaults-file is more
flexible because it enables you to specify multiple startup
options for the server by placing them in the named option
You can also specify a
option following the service name. This causes the server to
run using the
account that has limited system privileges. This account is
available only for Windows XP or newer. If both
--local-service are given following the
service name, they can be in any order.
For a MySQL server that is installed as a Windows service, the following rules determine the service name and option files that the server uses:
If the service-installation command specifies no service
name or the default service name (
--install option, the server
uses the a service name of
reads options from the
[mysqld] group in
the standard option files.
If the service-installation command specifies a service name
MySQL following the
--install option, the server uses that
service name. It reads options from the
[mysqld] group and the group that has the
same name as the service in the standard option files. This
enables you to use the
[mysqld] group for
options that should be used by all MySQL services, and an
option group with the service name for use by the server
installed with that service name.
If the service-installation command specifies a
--defaults-file option after
the service name, the server reads options the same way as
described in the previous item, except that it reads options
only from the named file and ignores the standard option
As a more complex example, consider the following command:
"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld"
--install MySQL --defaults-file=C:\my-opts.cnf
Here, the default service name (
given after the
--install option. If no
--defaults-file option had been
given, this command would have the effect of causing the server
to read the
[mysqld] group from the standard
option files. However, because the
--defaults-file option is
present, the server reads options from the
[mysqld] option group, and only from the
You can also specify options as Start parameters in the Windows Services utility before you start the MySQL service.
Once a MySQL server has been installed as a service, Windows starts the service automatically whenever Windows starts. The service also can be started immediately from the Services utility, or by using a NET START MySQL command. The NET command is not case sensitive.
When run as a service, mysqld has no access
to a console window, so no messages can be seen there. If
mysqld does not start, check the error log to
see whether the server wrote any messages there to indicate the
cause of the problem. The error log is located in the MySQL data
directory (for example,
Server 5.1\data). It is the file with a
When a MySQL server has been installed as a service, and the
service is running, Windows stops the service automatically when
Windows shuts down. The server also can be stopped manually by
Services utility, the NET
STOP MySQL command, or the mysqladmin
You also have the choice of installing the server as a manual
service if you do not wish for the service to be started
automatically during the boot process. To do this, use the
--install-manual option rather than the
"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld" --install-manual
To remove a server that is installed as a service, first stop it
if it is running by executing NET STOP MySQL.
Then use the
--remove option to
"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld" --remove
If mysqld is not running as a service, you can start it from the command line. For instructions, see Section 1.6.5, “Starting MySQL Server from the Windows Command Line”.
Please see Section 1.7, “Troubleshooting a Microsoft Windows MySQL Server Installation”, if you encounter difficulties during installation.