Table of Contents
The MySQL server 5.1 branch is old and not recommended for new installations. Consider installing the latest stable branch, which today is MySQL server 5.7.
MySQL is available for Microsoft Windows, for both 32-bit and 64-bit versions. For supported Windows platform information, see http://www.mysql.com/support/supportedplatforms/database.html.
It is possible to run MySQL as a standard application or as a Windows service. By using a service, you can monitor and control the operation of the server through the standard Windows service management tools. For more information, see Section 1.6.7, “Starting MySQL Server as a Microsoft Windows Service”.
Generally, you should install MySQL on Windows using an account that
has administrator rights. Otherwise, you may encounter problems with
certain operations such as editing the PATH
environment variable or accessing the Service Control
Manager. Once installed, MySQL does not need to be
executed using a user with Administrator privileges.
For a list of limitations on the use of MySQL on the Windows platform, see Windows Platform Limitations.
In addition to the MySQL Server package, you may need or want additional components to use MySQL with your application or development environment. These include, but are not limited to:
To connect to the MySQL server using ODBC, you must have a Connector/ODBC driver. For more information, including installation and configuration instructions, see MySQL Connector/ODBC Developer Guide.
To use MySQL server with .NET applications, you must have the Connector/Net driver. For more information, including installation and configuration instructions, see MySQL Connector/Net Developer Guide.
MySQL distributions for Windows can be downloaded from http://dev.mysql.com/downloads/. See How to Get MySQL.
MySQL for Windows is available in several distribution formats, detailed here. Generally speaking, you should use a binary distribution that includes an installer. It is simpler to use than the others, and you need no additional tools to get MySQL up and running. The installer for the Windows version of MySQL, combined with a GUI Config Wizard, automatically installs MySQL, creates an option file, starts the server, and secures the default user accounts.
Binary installer distribution. The installable distribution comes packaged as a Microsoft Windows Installer (MSI) package that you can install manually or automatically on your systems. Two formats are available, an essentials package that contains all the files you need to install and configure MySQL, but no additional components, and a complete package that includes MySQL, configuration tools, benchmarks and other components. For more information on the specific differences, see Section 1.2, “Choosing the Installation Package for Microsoft Windows”
For instructions on installing MySQL using one of the MSI installation packages, see Section 1.4, “Installing MySQL on Microsoft Windows Using an MSI Package”.
The standard binary distribution (packaged as a Zip file) contains all of the necessary files that you unpack into your chosen location. This package contains all of the files in the full Windows MSI Installer package, but does not include an installation program.
For instructions on installing MySQL using the Zip file, see Section 1.6, “Installing MySQL on Microsoft Windows Using a noinstall Zip Archive”.
The source distribution format contains all the code and support files for building the executables using the Visual Studio compiler system.
For instructions on building MySQL from source on Windows, see Chapter 2, Installing MySQL from Source on Windows.
MySQL on Windows considerations:
Large Table Support
If you need tables with a size larger than 4GB, install MySQL on
an NTFS or newer file system. Do not forget to use
MAX_ROWS and
AVG_ROW_LENGTH when you create tables. See
CREATE TABLE Syntax.
MySQL and Virus Checking Software
Virus-scanning software such as Norton/Symantec Anti-Virus on directories containing MySQL data and temporary tables can cause issues, both in terms of the performance of MySQL and the virus-scanning software misidentifying the contents of the files as containing spam. This is due to the fingerprinting mechanism used by the virus-scanning software, and the way in which MySQL rapidly updates different files, which may be identified as a potential security risk.
After installing MySQL Server, it is recommended that you
disable virus scanning on the main directory
(datadir) used to store your
MySQL table data. There is usually a system built into the
virus-scanning software to enable specific directories to be
ignored.
In addition, by default, MySQL creates temporary files in the
standard Windows temporary directory. To prevent the temporary
files also being scanned, configure a separate temporary
directory for MySQL temporary files and add this directory to
the virus scanning exclusion list. To do this, add a
configuration option for the
tmpdir parameter to your
my.ini configuration file. For more
information, see Section 1.6.2, “Creating an Option File”.
For MySQL 5.1 on Windows, the default installation
directory is C:\Program Files\MySQL\MySQL Server
5.1. Some Windows users prefer to install
in C:\mysql, the directory that formerly was
used as the default. However, the layout of the subdirectories
remains the same.
For MySQL 5.1.23 and earlier, all of the files are located within the parent directory, using the structure shown in the following table.
Table 1.1 Installation Layout for Windows Using MySQL 5.1.23 and Earlier
| Directory | Contents of Directory |
|---|---|
bin | Client programs and the mysqld server |
data | Log files, databases |
examples | Example programs and scripts |
include | Include (header) files |
lib | Libraries |
scripts | Utility scripts |
share | Miscellaneous support files, including error messages, character set files, sample configuration files, SQL for database installation |
For MySQL 5.1.24 and later, the default location of data directory was changed. The remainder of the directory structure remains the same.
Table 1.2 Installation Layout for Microsoft Windows using MySQL 5.1.24 and later
| Directory | Contents of Directory | Notes |
|---|---|---|
bin, scripts | mysqld server, client and utility programs | |
%ALLUSERSPROFILE%\MySQL\MySQL Server
5.1\ | Log files, databases (Windows XP, Windows Server 2003) | The Windows system variable %ALLUSERSPROFILE%
defaults to C:\Documents and Settings\All
Users\Application Data |
%PROGRAMDATA%\MySQL\MySQL Server 5.1\ | Log files, databases (Vista, Windows 7, Windows Server 2008, and newer) | The Windows system variable %PROGRAMDATA% defaults to
C:\ProgramData |
examples | Example programs and scripts | |
include | Include (header) files | |
lib | Libraries | |
share | Miscellaneous support files, including error messages, character set files, sample configuration files, SQL for database installation |
For MySQL 5.1, there are multiple installation package formats to choose from when installing MySQL on Windows.
Using MySQL Installer is the recommended installation method for Microsoft Windows users. The MySQL Server 5.1 release does not include its own MySQL Installer release, but a MySQL Installer version 5.5 and above can optionally install MySQL Server 5.1. Follow the standard Installing MySQL on Microsoft Windows Using MySQL Installer documentation but choose Custom Install after executing it. A MySQL Server 5.1 option will be available, and choosing it will cause MySQL Installer to download it for you.
Table 1.3 Microsoft Windows MySQL Installation package comparison
| Packaging | |||
|---|---|---|---|
| Feature | Essentials | Complete | Zip (No-install) |
| Installer | Yes | Yes | No |
| Directory-only | |||
| MySQL Server Instance Config Wizard | Yes | Yes | No |
| Test Suite | No | Yes | Yes |
| MySQL Server | Yes | Yes | Yes |
| MySQL Client Programs | Yes | Yes | Yes |
| C Headers/Libraries | Yes | Yes | Yes |
| Embedded Server | No | Optional | Yes |
| Scripts and Examples | No | Optional | Yes |
In the above table:
Yes indicates that the component is installed by default.
No indicates that the component is not installed or included.
Optional indicates that the component is included with the package, but not installed unless explicitly requested using the Custom installation mode.
The workflow for installing using the MSI installer is shown here:
The workflow for installing using the Zip package is shown here:
For the Essentials and Complete packages in the MSI installer, you can select individual components to be installed by using the Custom mode, including disable the components confiurated for installation by default.
Full details on the components are suggested uses are provided here for reference:
Windows Essentials: This
package has a file name similar to
mysql-essential-5.1.73-win32.msi
and is supplied as a Microsoft Installer (MSI) package. The
package includes the minimum set of files needed to install
MySQL on Windows, including the MySQL Server Instance Config
Wizard. This package does not include optional components such
as the embedded server, developer headers and libraries or
benchmark suite.
To install using this package, see Section 1.4, “Installing MySQL on Microsoft Windows Using an MSI Package”.
Windows MSI Installer
(Complete): This package has a file name similar to
mysql-5.1.73-win32.msi and
contains all files needed for a complete Windows installation,
including the MySQL Server Instance Config Wizard. This
package includes optional components such as the embedded
server and benchmark suite.
To install using this package, see Section 1.4, “Installing MySQL on Microsoft Windows Using an MSI Package”.
Without installer: This
package has a file name similar to
mysql-noinstall-5.1.73-win32.zip
and contains all the files found in the Complete install
package, with the exception of the MySQL Server Instance
Config Wizard. This package does not include an automated
installer, and must be manually installed and configured.
The Essentials package is recommended for most users. Both the
Essentials and Complete distributions are available as an
.msi file for use with the Windows Installer.
The Noinstall distribution is packaged as a Zip archive. To use a
Zip archive, you must have a tool that can unpack
.zip files.
When using the MSI installers you can automate the installation process. For more information, see Section 1.4.2, “Automating MySQL Installation on Microsoft Windows Using the MSI Package”. To automate the creation of a MySQL instance, see Section 1.5.13, “MySQL Server Instance Config Wizard: Creating an Instance from the Command Line”.
Your choice of install package affects the installation process you must follow. If you choose to install either an Essentials or Complete install package, see Section 1.4, “Installing MySQL on Microsoft Windows Using an MSI Package”. If you choose to install a Noinstall archive, see Section 1.6, “Installing MySQL on Microsoft Windows Using a noinstall Zip Archive”.
MySQL Notifier is a tool that enables you to monitor and adjust the status of your local and remote MySQL server instances through an indicator that resides in the system tray. MySQL Notifier also gives quick access to MySQL Workbench through its context menu.
The MySQL Notifier is installed by MySQL Installer, and (by default) will start-up when Microsoft Windows is started.
To install, download and execute the MySQL Installer, be sure the MySQL Notifier product is selected, then proceed with the installation. See the MySQL Installer manual for additional details.
For notes detailing the changes in each release of MySQL Notifier, see the MySQL Notifier Release Notes.
Visit the MySQL Notifier forum for additional MySQL Notifier help and support.
Start, Stop, and Restart instances of the MySQL Server.
Automatically detects (and adds) new MySQL Server services. These are listed under , and may also be configured.
The Tray icon changes, depending on the status. It's green if all monitored MySQL Server instances are running, or red if at least one service is stopped. The Update MySQL Notifier tray icon based on service status option, which dictates this behavior, is enabled by default for each service.
Links to other applications like MySQL Workbench, MySQL Installer, and the MySQL Utilities. For example, choosing will load the MySQL Workbench Server Administration window for that particular instance.
If MySQL Workbench is also installed, then the and options are available for local (but not remote) MySQL instances.
Monitors both local and remote MySQL instances.
MySQL Notifier resides in the system tray and provides visual status information for your MySQL server instances. A green icon is displayed at the top left corner of the tray icon if the current MySQL server is running, or a red icon if the service is stopped.
MySQL Notifier automatically adds discovered MySQL services on the
local machine, and each service is saved and configurable. By
default, the Automatically add new services whose name
contains option is enabled and set to
mysql. Related Notifications
Options include being notified when new services are
either discovered or experience status changes, and are also
enabled by default. And uninstalling a service will also remove
the service from MySQL Notifier.
Clicking the system tray icon will reveal several options, as the follow figures show:
The Service Instance menu is the main MySQL Notifier window, and enables you to Stop, Start, and Restart the MySQL server.
The menu includes several links to external applications (if they are installed), and a Refresh Status option to manually refresh the status of all monitored services (in both local and remote computers) and MySQL instances.
The main menu will not show the menu when there are no services being monitored by MySQL Notifier.
The , menu configures MySQL Notifier and includes options to:
Use colorful status icons: Enables a colorful style of icons for the tray of MySQL Notifier.
Run at Windows Startup: Allows the application to be loaded when Microsoft Windows starts.
Automatically Check For Updates Every # Weeks: Checks for a new version of MySQL Notifier, and runs this check every # weeks.
Automatically add new services whose name contains: The text used to filter services and add them automatically to the monitored list of the local computer running MySQL Notifier, and on remote computers already monitoring Windows services.
Ping monitored MySQL Server instances every # seconds: The interval (in seconds) to ping monitored MySQL Server instances for status changes. Longer intervals might be necessary if the list of monitored remote instances is large.
Notify me when a service is automatically added: Will display a balloon notification from the taskbar when a newly discovered service is added to the monitored services list.
Notify me when a service changes status: Will display a balloon notification from the taskbar when a monitored service changes its status.
Automatic connections migration delayed until: When there are connections to migrate, postpone the migration by one hour, one day, one week, one month, or indefinitely.
The , menu enables you to configure the monitored services and MySQL instances. First, with the Services tab open:
The Instances tab is similar:
Adding a service or instance (after clicking in the window) enables you to select a running Microsoft Windows service or instance connection, and configure MySQL Notifier to monitor it. Add a new service or instance by clicking service name from the list, then to accept. Multiple services and instances may be selected.
Add instances:
For issues that are not documented here, visit the MySQL Notifier Support Forum for MySQL Notifier help and support.
Problem: attempting to
start/stop/restart a MySQL service might generate an error
similar to "The Service
MySQLVERSION
failed the most recent status change request with the
message "The service
mysqlVERSION
was not found in the Windows Services".
Explanation: this is a case-sensitivity
issue, in that the service name is
MySQLVERSION
compared to having
mysqlVERSION
in the configuration file.
Solution: either update your
MySQL Notifier configuration file with the correct information,
or stop MySQL Notifier and delete this configuration file. The
MySQL Notifier configuration file is located at
%APPDATA%\Oracle\MySQL
Notifier\settings.config where
%APPDATA% is a variable and depends on
your system. A typical location is
"C:\Users\YourUsername\AppData\Running\Oracle\MySQL
Notifier\settings.config" where
YourUsername is your system's
user name. In this file, and within the ServerList section,
change the ServerName values from lowercase to the actual
service names. For example, change
mysqlVERSION
to
MySQLVERSION,
save, and then restart MySQL Notifier. Alternatively, stop
MySQL Notifier, delete this file, then restart MySQL Notifier.
Problem: when connecting to a remote computer for the purpose of monitoring a remote Windows service, the Add Service dialog does not always show all the services shown in the Windows Services console.
Explanation: this behavior is governed by the operating system and the outcome is expected when working with nondomain user accounts. For a complete description of the behavior, see the User Account Control and WMI article from Microsoft.
Solution: when the remote computer is in a compatible domain, it is recommended that domain user accounts are used to connect through WMI to a remote computer. For detailed setup instructions using WMI, see Section 1.3.2, “Setting Up Remote Monitoring in MySQL Notifier”.
Alternatively, when domain user accounts are not available, Microsoft provides a less secure workaround that should only be implemented with caution. For more information, see the Description of User Account Control and remote restrictions in Windows Vista KB article from Microsoft.
MySQL Notifier uses Windows Management Instrumentation (WMI) to manage and monitor services on remote computers. This section explains how it works and how to set up your system to monitor remote MySQL instances.
In order to configure WMI, it is important to understand that the underlying Distributed Component Object Model (DCOM) architecture is doing the WMI work. Specifically, MySQL Notifier is using asynchronous notification queries on remote Microsoft Windows hosts as .NET events. These events send an asynchronous callback to the computer running MySQL Notifier so it knows when a service status has changed on the remote computer. Asynchronous notifications offer the best performance compared to semisynchronous notifications or synchronous notifications that use timers.
Asynchronous notification requires the remote computer to send a callback to the client computer (thus opening a reverse connection), so the Windows Firewall and DCOM settings must be properly configured for the communication to function properly.
Most of the common errors thrown by asynchronous WMI notifications are related to Windows Firewall blocking the communication, or to DCOM / WMI settings not being set up properly. For a list of common errors with solutions, see Common Errors.
The following steps are required to make WMI function. These steps are divided between two machines. A single host computer that runs MySQL Notifier (Computer A), and multiple remote machines that are being monitored (Computer B).
Enable remote administration by either editing the
Group Policy Editor, or using
NETSH:
Using the Group Policy Editor:
Click , click
, type
GPEDIT.MSC, and then click
.
Under the Local Computer Policy heading, expand Computer Configuration.
Expand Administrative Templates, then Network, Network Connections, and then Windows Firewall.
If the computer is in the domain, then double-click Domain Profile; otherwise, double-click Standard Profile.
Double-click Windows Firewall: Allow inbound remote administration exception to open a configuration window.
Check the option button and then click .
Using the NETSH command:
The "netsh firewall" command is deprecated as of Microsoft Server 2008 and Vista, and replaced with "netsh advfirewall firewall".
Open a command prompt window with Administrative rights (you can right-click the Command Prompt icon and select Run as Administrator).
Execute the following command:
NETSH advfirewall firewall set service RemoteAdmin enable
Open the DCOM port TCP 135:
Open a command prompt window with Administrative rights (you can right-click the Command Prompt icon and select Run as Administrator).
Execute the following command:
NETSH advfirewall firewall add rule name=DCOM_TCP135 protocol=TCP localport=135 dir=in action=allow
Add the client application that contains the sink for the
callback (MySqlNotifier.exe) to the
Windows Firewall Exceptions List (use either the Windows
Firewall configuration or NETSH):
Using the Windows Firewall configuration:
In the Control Panel, double-click Windows Firewall.
In the Windows Firewall window's left panel, click Allow a program or feature through Windows Firewall.
In the Allowed Programs window, click and do one of the following:
If MySqlNotifier.exe is in the
Allowed programs and features list, make sure it is
checked for the type of networks the computer
connects to (Private, Public or both).
If MySqlNotifier.exe is not in
the list, click .
In the Add a Program
window, select the
MySqlNotifier.exe if it
exists in the Programs list, otherwise click
Browse... and go to the directory where
MySqlNotifier.exe was
installed to select it, then click
.
Make sure MySqlNotifier.exe
is checked for the type of networks the computer
connects to (Private, Public or both).
Using the NETSH command:
Open a command prompt window with Administrative rights (you can right-click the Command Prompt icon and click ).
Execute the following command, where you change
"[YOUR_INSTALL_DIRECTORY]":
NETSH advfirewall firewall add rule name=MySqlNotifier program=[YOUR_INSTALL_DIRECTORY]\MySqlNotifier.exe action=allow dir=in
If Computer B is either a member of
WORKGROUP or is in a different domain
that is untrusted by Computer A, then the callback
connection (Connection 2) is created as an Anonymous
connection. To grant Anonymous connections DCOM Remote
Access permissions:
Click , click
, type
DCOMCNFG, and then click
.
In the Component Services dialog box, expand Component Services, expand Computers, and then right-click My Computer and click .
In the My Computer Properties dialog box, click the COM Security tab.
Under Access Permissions, click .
In the Access Permission dialog box, select ANONYMOUS LOGON name in the Group or user names box. In the Allow column under Permissions for User, select Remote Access, and then click .
If the user account that is logged on to the computer running the MySQL Notifier (Computer A) is a local administrator on the remote computer (Computer B), such that the same account is an administrator on Computer B, you can skip to the "Allow for remote administration" step.
Setting DCOM security to allow a non-administrator user to access a computer remotely:
Grant "DCOM remote launch" and activation permissions for a user or group:
Click , click
, type
DCOMCNFG, and then click
.
In the Component Services dialog box, expand Component Services, expand Computers, and then right-click My Computer and click .
In the My Computer Properties dialog box, click the COM Security tab.
Under Launch and Activation Permission, click .
In the Launch and Activation Permission dialog box, follow these steps if your name or your group does not appear in the Groups or user names list:
In the Launch and Activation Permission dialog box, click .
In the Select Users or Groups dialog box, add your name and the group in the Enter the object names to select box, and then click .
In the Launch and Activation Permission dialog box, select your user and group in the Group or user names box. In the Allow column under Permissions for User, select Remote Launch, select Remote Activation, and then click .
Grant DCOM remote access permissions:
Click , click
, type
DCOMCNFG, and then click
.
In the Component Services dialog box, expand Component Services, expand Computers, and then right-click My Computer and click .
In the My Computer Properties dialog box, click the COM Security tab.
Under Access Permissions, click .
In the Access Permission dialog box, select ANONYMOUS LOGON name in the Group or user names box. In the Allow column under Permissions for User, select Remote Access, and then click .
Allowing non-administrator users access to a specific WMI namespace:
In the Control Panel, double-click Administrative Tools.
In the Administrative Tools window, double-click Computer Management.
In the Computer Management window, expand the Services and Applications tree.
Right-click the WMI Control icon and select Properties.
In the WMI Control Properties window, click the Security tab.
In the Security tab, select the namespace and click . Root/CIMV2 is a commonly used namespace.
Locate the appropriate account and check Remote Enable in the Permissions list.
Allow for remote administration by either editing the
Group Policy Editor or using
NETSH:
Using the Group Policy Editor:
Click , click
, type
GPEDIT.MSC, and then click
.
Under the Local Computer Policy heading, double-click Computer Configuration.
Double-click Administrative Templates, then Network, Network Connections, and then Windows Firewall.
If the computer is in the domain, then double-click Domain Profile; otherwise, double-click Standard Profile.
Click Windows Firewall: Allow inbound remote administration exception.
On the Action menu either select , or double-click the selection from the previous step.
Check the radio button, and then click .
Using the NETSH command:
Open a command prompt window with Administrative rights (you can right-click the Command Prompt icon and click Run as Administrator).
Execute the following command:
NETSH advfirewall firewall set service RemoteAdmin enable
Confirm that the user account you are logging in with uses
the Name value and not the Full
Name value:
In the Control Panel, double-click Administrative Tools.
In the Administrative Tools window, double-click Computer Management.
In the Computer Management window, expand the System Tools then Local Users and Groups.
Click the Users node, and on the right side panel locate your user and make sure it uses the Name value to connect, and not the Full Name value.
0x80070005
DCOM Security was not configured properly (see Computer
B, the Setting DCOM security...
step).
The remote computer (Computer B) is a member of
WORKGROUP or is in a domain that is untrusted by the
client computer (Computer A) (see Computer A, the
Grant Anonymous connections DCOM Remote Access
permissions step).
0x8007000E
The remote computer (Computer B) is a member of
WORKGROUP or is in a domain that is untrusted by the
client computer (Computer A) (see Computer A, the
Grant Anonymous connections DCOM Remote Access
permissions step).
0x80041003
Access to the remote WMI namespace was not configured
properly (see Computer B, the Allowing
non-administrator users access to a specific WMI
namespace step).
0x800706BA
The DCOM port is not open on the client computers
(Computer A) firewall. See the Open the DCOM
port TCP 135 step for Computer A.
The remote computer (Computer B) is inaccessible because its network location is set to Public. Make sure you can access it through the Windows Explorer.
The MSI package is designed to install and configure MySQL in such a way that you can immediately get started using MySQL.
The MySQL Installation Wizard and MySQL Configuration Wizard are available in the Essentials and Complete install packages. They are recommended for most standard MySQL installations. Exceptions include users who need to install multiple instances of MySQL on a single server host and advanced users who want complete control of server configuration.
For information on installing using the GUI MSI installer process, see Section 1.4.1, “Using the MySQL Installation Wizard for Microsoft Windows”.
For information on installing using the command line using the MSI package, see Section 1.4.2, “Automating MySQL Installation on Microsoft Windows Using the MSI Package”.
If you have previously installed MySQL using the MSI package and want to remove MySQL, see Section 1.4.3, “Removing MySQL When Installed from the MSI Package”.
The workflow sequence for using the installer is shown in the figure below:
Microsoft Windows XP and later include a firewall which specifically blocks ports. If you plan on using MySQL through a network port then you should open and create an exception for this port before performing the installation. To check and if necessary add an exception to the firewall settings:
First ensure that you are logged in as an Administrator or a user with Administrator privileges.
Go to the Control Panel, and double click the Windows Firewall icon.
Choose the Allow a program through Windows Firewall option and click the button.
Enter MySQL into the
Name text box and 3306
(or the port of your choice) into the Port
number text box.
Also ensure that the TCP protocol radio button is selected.
If you wish, you can also limit access to the MySQL server by choosing the Change scope button.
Confirm your choices by clicking the button.
Additionally, when running the MySQL Installation Wizard on Windows Vista or newer, ensure that you are logged in as a user with administrative rights.
When using Windows Vista or newer, you may want to disable User Account Control (UAC) before performing the installation. If you do not do so, then MySQL may be identified as a security risk, which will mean that you need to enable MySQL. You can disable the security checking by following these instructions:
Open Control Panel.
Under the User Accounts and Family Safety, select Add or remove user accounts.
Click the Got to the main User Accounts page link.
Click on Turn User Account Control on or off. You may be prompted to provide permission to change this setting. Click .
Deselect or uncheck the check box next to Use User Account Control (UAC) to help protect your computer. Click to save the setting.
You will need to restart to complete the process. Click to reboot the machine and apply the changes. You can then follow the instructions below for installing Windows.
MySQL Installation Wizard is an installer for the MySQL server that uses the latest installer technologies for Microsoft Windows. The MySQL Installation Wizard, in combination with the MySQL Config Wizard, enables a user to install and configure a MySQL server that is ready for use immediately after installation.
The MySQL Installation Wizard uses the standard Microsoft Installer Engine (MSI) system is the standard installer for all MySQL server distributions. See Section 1.4.1.6, “MySQL Installation Wizard: Upgrading MySQL”, for more information on upgrading from a previous version.
If you are upgrading an installation from MySQL 5.1.31 or earlier to MySQL 5.1.32 or later, read the notes provided in Section 1.4.1.6, “MySQL Installation Wizard: Upgrading MySQL”.
The Microsoft Windows Installer Engine was updated with the release of Windows XP; those using a previous version of Windows can reference this Microsoft Knowledge Base article for information on upgrading to the latest version of the Windows Installer Engine.
In addition, Microsoft has introduced the WiX (Windows Installer XML) toolkit. This is the first highly acknowledged Open Source project from Microsoft. We have switched to WiX because it is an Open Source project and it enables us to handle the complete Windows installation process in a flexible manner using scripts.
Improving the MySQL Installation Wizard depends on the support and feedback of users like you. If you find that the MySQL Installation Wizard is lacking some feature important to you, or if you discover a bug, please report it in our bugs database using the instructions given in How to Report Bugs or Problems.
The MySQL installation packages can be downloaded from http://dev.mysql.com/downloads/. If the package you download is contained within a Zip archive, you need to extract the archive first.
The process for starting the wizard depends on the contents of
the installation package you download. If there is a
setup.exe file present, double-click it to
start the installation process. If there is an
.msi file present, double-click it to start
the installation process.
There are three installation types available: Typical, Complete, and Custom.
The Typical installation type installs the MySQL server, the mysql command-line client, and the command-line utilities. The command-line clients and utilities include mysqldump, myisamchk, and several other tools to help you manage the MySQL server.
The Complete installation type installs all components included in the installation package. The full installation package includes components such as the embedded server library, the benchmark suite, support scripts, and documentation.
The Custom installation type gives you complete control over which packages you wish to install and the installation path that is used. See Section 1.4.1.3, “MySQL Installation Wizard: The Custom Install Dialog”, for more information on performing a custom install.
If you choose the Typical or Complete installation types and click the button, you advance to the confirmation screen to verify your choices and begin the installation. If you choose the Custom installation type and click the button, you advance to the custom installation dialog, described in Section 1.4.1.3, “MySQL Installation Wizard: The Custom Install Dialog”.
If you wish to change the installation path or the specific components that are installed by the MySQL Installation Wizard, choose the Custom installation type.
A tree view on the left side of the custom install dialog lists all available components. Components that are not installed have a red X icon; components that are installed have a gray icon. To change whether a component is installed, click that component's icon and choose a new option from the drop-down list that appears.
You can change the default installation path by clicking the button to the right of the displayed installation path.
After choosing your installation components and installation path, click the button to advance to the confirmation dialog.
Once you choose an installation type and optionally choose your installation components, you advance to the confirmation dialog. Your installation type and installation path are displayed for you to review.
To install MySQL if you are satisfied with your settings, click the button. To change your settings, click the button. To exit the MySQL Installation Wizard without installing MySQL, click the button.
In MySQL 5.1.47 and earlier, after installation is complete, you have the option of registering with the MySQL web site. Registration gives you access to post in the MySQL forums at forums.mysql.com, along with the ability to report bugs at bugs.mysql.com and to subscribe to our newsletter.
The final screen of the installer provides a summary of the installation and gives you the option to launch the MySQL Config Wizard, which you can use to create a configuration file, install the MySQL service, and configure security settings.
Once you click the button, the MySQL Installation Wizard begins the installation process and makes certain changes to your system which are described in the sections that follow.
Changes to the Registry
The MySQL Installation Wizard creates one Windows registry key
in a typical install situation, located in
HKEY_LOCAL_MACHINE\SOFTWARE\MySQL AB. For
64-bit Windows, the registry location is
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MYSQL
AB. A server version specific entry will be created
for each release series of MySQL that you install.
The MySQL Installation Wizard creates a key named after the
release series of the server that is being installed, such as
MySQL Server 5.1. It contains
two string values, Location and
Version. The Location
string contains the path to the installation directory. In a
default installation it contains C:\Program
Files\MySQL\MySQL Server 5.1\. The
Version string contains the release number.
For example, for an installation of MySQL Server
5.1.73, the key contains a value of
5.1.73.
These registry keys are used to help external tools identify the
installed location of the MySQL server, preventing a complete
scan of the hard-disk to determine the installation path of the
MySQL server. The registry keys are not required to run the
server, and if you install MySQL using the
noinstall Zip archive, the registry keys are
not created.
Changes to the Start Menu
The MySQL Installation Wizard creates a new entry in the Windows menu under a common MySQL menu heading named after the release series of MySQL that you have installed. For example, if you install MySQL 5.1, the MySQL Installation Wizard creates a section in the menu.
The following entries are created within the new menu section:
: This
is a shortcut to the mysql command-line
client and is configured to connect as the
root user. The shortcut prompts for a
root user password when you connect.
: This is a shortcut to the MySQL Config Wizard. Use this shortcut to configure a newly installed server, or to reconfigure an existing server.
: This is a link to the MySQL server documentation that is stored locally in the MySQL server installation directory. This option is not available when the MySQL server is installed using the Essentials installation package.
Changes to the File System
The MySQL Installation Wizard by default installs the MySQL
5.1 server to C:\, where
Program
Files\MySQL\MySQL Server
5.1Program Files is the default location
for applications in your system, and
5.1 is the release
series of your MySQL server. This is the recommended location
for the MySQL server, replacing the former default location
C:\mysql.
By default, all MySQL applications are stored in a common
directory at C:\, where Program
Files\MySQLProgram
Files is the default location for applications in
your Windows installation. A typical MySQL installation on a
developer machine might look like this:
C:\Program Files\MySQL\MySQL Server 5.1 C:\Program Files\MySQL\MySQL Workbench 5.1 OSS
This approach makes it easier to manage and maintain all MySQL applications installed on a particular system.
In MySQL 5.1.23 and earlier, the default location for the data
files used by MySQL is located within the corresponding MySQL
Server installation directory. For MySQL 5.1.24 and later, the
default location of the data directory is the
AppData directory configured for the user
that installed the MySQL application.
The MySQL Installation Wizard can perform server upgrades automatically using the upgrade capabilities of MSI. That means you do not need to remove a previous installation manually before installing a new release. The installer automatically shuts down and removes the previous MySQL service before installing the new version.
Automatic upgrades are available only when upgrading between installations that have the same major and minor version numbers. For example, you can upgrade automatically from MySQL 5.1.5 to MySQL 5.1.6, but not from MySQL 5.0 to MySQL 5.1.
In MySQL 5.1.32 and later, the EXE version of
the MSI installer packages were removed. When upgrading an
existing MySQL installation from the old EXE based installer to
the MSI based installer, please keep the following notes in
mind:
The MSI installer will not identify an existing installation that was installed using the old EXE installer. This means that the installer will not stop the existing server, or detect that the existing password is required before installing the new version. To work around this:
Stop the current server manually using net
stop or mysqladmin
shutdown.
Remove the existing installation manually by using the Add/Remove Programs control panel. This will keep the existing configuration and data files, as these are not removed automatically.
Install the new version of MySQL using the MSI installer. When running the installation, skip updating the security by deselecting the check box on the security screen.
Complete the installation, and then start the server again. You should be able to login with your existing user and password credentials.
You can only upgrade the version and release using the MSI installer. For example, you can upgrade an open source installation with an open source installer. You cannot upgrade an open source installation using the enterprise installer.
See Section 1.9, “Upgrading MySQL Server on Microsoft Windows”.
The Microsoft Installer (MSI) supports a both a quiet and a passive mode that can be used to install MySQL automatically without requiring intervention. You can use this either in scripts to automatically install MySQL or through a terminal connection such as Telnet where you do not have access to the standard Windows user interface. The MSI packages can also be used in combination with Microsoft's Group Policy system (part of Windows Server 2003 and Windows Server 2008) to install MySQL across multiple machines.
To install MySQL from one of the MSI packages automatically from the command line (or within a script), you need to use the msiexec.exe tool. For example, to perform a quiet installation (which shows no dialog boxes or progress):
shell> msiexec /i mysql-5.1.73.msi /quiet
The /i indicates that you want to perform an
installation. The /quiet option indicates that
you want no interactive elements.
To provide a dialog box showing the progress during installation,
and the dialog boxes providing information on the installation and
registration of MySQL, use /passive mode instead
of /quiet:
shell> msiexec /i mysql-5.1.73.msi /passive
Regardless of the mode of the installation, installing the package in this manner performs a 'Typical' installation, and installs the default components into the standard location.
You can also use this method to uninstall MySQL by using the
/uninstall or /x options:
shell> msiexec /x mysql-5.1.73.msi /uninstall
To install MySQL and configure a MySQL instance from the command line, see Section 1.5.13, “MySQL Server Instance Config Wizard: Creating an Instance from the Command Line”.
For information on using MSI packages to install software automatically using Group Policy, see How to use Group Policy to remotely install software in Windows Server 2003.
To uninstall a MySQL where you have used the MSI packages, you must use the Add/Remove Programs tool within Control Panel. To do this:
Right-click the start menu and choose Control Panel.
If the Control Panel is set to category mode (you will see Pick a category at the top of the Control Panel window), double-click Add or Remove Programs. If the Control is set to classic mode, double-click the Add or Remove Programs icon.
Find MySQL in the list of installed software. MySQL Server is installed against release series numbers (MySQL 5.0, MySQL 5.1, etc.). Select the version that you want to remove and click .
You will be prompted to confirm the removal. Click to remove MySQL.
When MySQL is removed using this method, only the installed components are removed. Any database information (including the tables and data), import or export files, log files, and binary logs produced during execution are kept in their configured location.
If you try to install MySQL again the information will be retained and you will be prompted to enter the password configured with the original installation.
If you want to delete MySQL completely:
Delete the associated data directory. On Windows XP and
Windows Server 2003, before MySQL 5.1.24, the default data
directory would be located within the MySQL installation
directory. On MySQL 5.1.24 and later, the default data
directory is the configured AppData directory, which is
C:\Documents and Settings\All Users\Application
Data\MySQL by default.
On Windows 7 and Windows Server 2008, the default data
directory location is
C:\ProgramData\Mysql.
The C:\ProgramData directory is hidden
by default. You must change your folder options to view the
hidden file. Choose ,
,
Show hidden folders.
The MySQL Server Instance Config Wizard helps automate the process
of configuring your server. It creates a custom MySQL configuration
file (my.ini or my.cnf) by
asking you a series of questions and then applying your responses to
a template to generate the configuration file that is tuned to your
installation.
The complete and essential MSI installation packages include the MySQL Server Instance Config Wizard in the MySQL 5.1 server. The MySQL Server Instance Config Wizard is only available for Windows.
The workflow sequence for using the MySQL Server Instance Config Wizard is shown in the figure below:
The MySQL Server Instance Config Wizard is normally started as part of the installation process. You should only need to run the MySQL Server Instance Config Wizard again when you need to change the configuration parameters of your server.
If you chose not to open a port prior to installing MySQL on Windows Vista or newer, you can choose to use the MySQL Server Instance Config Wizard after installation. However, you must open a port in the Windows Firewall. To do this see the instructions given in Section 1.4.1.1, “MySQL Installation Wizard: Downloading and Starting”. Rather than opening a port, you also have the option of adding MySQL as a program that bypasses the Windows Firewall. One or the other option is sufficient—you need not do both. Additionally, when running the MySQL Server Config Wizard on Windows Vista or newer, ensure that you are logged in as a user with administrative rights.
You can launch the MySQL Config Wizard by clicking the entry in the section of the Windows menu.
Alternatively, you can navigate to the bin
directory of your MySQL installation and launch the
MySQLInstanceConfig.exe file directly.
The MySQL Server Instance Config Wizard places the
my.ini file in the installation directory for
the MySQL server. This helps associate configuration files with
particular server instances.
To ensure that the MySQL server knows where to look for the
my.ini file, an argument similar to this is
passed to the MySQL server as part of the service installation:
--defaults-file="C:\Program Files\MySQL\MySQL Server 5.1\my.ini"
Here, C:\Program Files\MySQL\MySQL Server
5.1 is replaced with the installation
path to the MySQL Server. The
--defaults-file option instructs
the MySQL server to read the specified file for configuration
options when it starts.
Apart from making changes to the my.ini file
by running the MySQL Server Instance Config Wizard again, you can
modify it by opening it with a text editor and making any
necessary changes. You can also modify the server configuration
with the
http://www.mysql.com/products/administrator/
utility. For more information about server configuration, see
Server Command Options.
MySQL clients and utilities such as the mysql
and mysqldump command-line clients are not able
to locate the my.ini file located in the
server installation directory. To configure the client and utility
applications, create a new my.ini file in the
Windows installation directory (for example,
C:\WINDOWS).
Under Windows Server 2003, Windows Server 2000, Windows XP, and
Windows Vista, MySQL Server Instance Config Wizard will configure
MySQL to work as a Windows service. To start and stop MySQL you
use the Services application that is supplied
as part of the Windows Administrator Tools.
If the MySQL Server Instance Config Wizard detects an existing configuration file, you have the option of either reconfiguring your existing server, or removing the server instance by deleting the configuration file and stopping and removing the MySQL service.
To reconfigure an existing server, choose the option and click the button. Any existing configuration file is not overwritten, but renamed (within the same directory) using a timestamp (Windows) or sequential number (Linux). To remove the existing server instance, choose the option and click the button.
If you choose the
option, you advance to a confirmation window. Click the
button. The MySQL Server Config
Wizard stops and removes the MySQL service, and then deletes the
configuration file. The server installation and its
data folder are not removed.
If you choose the option, you advance to the dialog where you can choose the type of installation that you wish to configure.
When you start the MySQL Server Instance Config Wizard for a new MySQL installation, or choose the option for an existing installation, you advance to the dialog.
There are two configuration types available: and . The option is intended for new users who want to get started with MySQL quickly without having to make many decisions about server configuration. The option is intended for advanced users who want more fine-grained control over server configuration.
If you are new to MySQL and need a server configured as a single-user developer machine, the should suit your needs. Choosing the option causes the MySQL Config Wizard to set all configuration options automatically with the exception of and .
The sets options that may be incompatible with systems where there are existing MySQL installations. If you have an existing MySQL installation on your system in addition to the installation you wish to configure, the option is recommended.
To complete the , please refer to the sections on and in Section 1.5.10, “MySQL Server Instance Config Wizard: The Service Options Dialog”, and Section 1.5.11, “MySQL Server Instance Config Wizard: The Security Options Dialog”, respectively.
There are three different server types available to choose from. The server type that you choose affects the decisions that the MySQL Server Instance Config Wizard makes with regard to memory, disk, and processor usage.
: Choose this option for a typical desktop workstation where MySQL is intended only for personal use. It is assumed that many other desktop applications are running. The MySQL server is configured to use minimal system resources.
: Choose this option for a server machine where the MySQL server is running alongside other server applications such as FTP, email, and Web servers. The MySQL server is configured to use a moderate portion of the system resources.
: Choose this option for a server machine that is intended to run only the MySQL server. It is assumed that no other applications are running. The MySQL server is configured to use all available system resources.
By selecting one of the preconfigured configurations, the values
and settings of various options in your
my.cnf or my.ini will
be altered accordingly. The default values and options as
described in the reference manual may therefore be different to
the options and values that were created during the execution of
the Config Wizard.
The dialog enables you to
indicate the storage engines that you expect to use when creating
MySQL tables. The option you choose determines whether the
InnoDB storage engine is available and what
percentage of the server resources are available to
InnoDB.
: This
option enables both the InnoDB and
MyISAM storage engines and divides
resources evenly between the two. This option is recommended
for users who use both storage engines on a regular basis.
: This
option enables both the InnoDB and
MyISAM storage engines, but dedicates most
server resources to the InnoDB storage
engine. This option is recommended for users who use
InnoDB almost exclusively and make only
minimal use of MyISAM.
:
This option disables the InnoDB storage
engine completely and dedicates all server resources to the
MyISAM storage engine. This option is
recommended for users who do not use
InnoDB.
The Config Wizard uses a template to generate the server configuration file. The dialog sets one of the following option strings:
Multifunctional Database: MIXED Transactional Database Only: INNODB Non-Transactional Database Only: MYISAM
When these options are processed through the default template (my-template.ini) the result is:
Multifunctional Database: default-storage-engine=InnoDB _myisam_pct=50 Transactional Database Only: default-storage-engine=InnoDB _myisam_pct=5 Non-Transactional Database Only: default-storage-engine=MyISAM _myisam_pct=100 skip-innodb
The _myisam_pct value is used to calculate the
percentage of resources dedicated to MyISAM.
The remaining resources are allocated to
InnoDB.
Some users may want to locate the InnoDB
tablespace files in a different location than the MySQL server
data directory. Placing the tablespace files in a separate
location can be desirable if your system has a higher capacity or
higher performance storage device available, such as a RAID
storage system.
To change the default location for the InnoDB
tablespace files, choose a new drive from the drop-down list of
drive letters and choose a new path from the drop-down list of
paths. To create a custom path, click the
button.
If you are modifying the configuration of an existing server, you must click the button before you change the path. In this situation you must move the existing tablespace files to the new location manually before starting the server.
To prevent the server from running out of resources, it is important to limit the number of concurrent connections to the MySQL server that can be established. The dialog enables you to choose the expected usage of your server, and sets the limit for concurrent connections accordingly. It is also possible to set the concurrent connection limit manually.
: Choose this option if your server does not require a large number of concurrent connections. The maximum number of connections is set at 100, with an average of 20 concurrent connections assumed.
: Choose this option if your server requires a large number of concurrent connections. The maximum number of connections is set at 500.
: Choose this option to set the maximum number of concurrent connections to the server manually. Choose the number of concurrent connections from the drop-down box provided, or enter the maximum number of connections into the drop-down box if the number you desire is not listed.
Use the dialog to enable or disable TCP/IP networking and to configure the port number that is used to connect to the MySQL server.
TCP/IP networking is enabled by default. To disable TCP/IP networking, uncheck the box next to the option.
Port 3306 is used by default. To change the port used to access MySQL, choose a new port number from the drop-down box or type a new port number directly into the drop-down box. If the port number you choose is in use, you are prompted to confirm your choice of port number.
Set the to either enable or disable strict mode. Enabling strict mode (default) makes MySQL behave more like other database management systems. If you run applications that rely on MySQL's old “forgiving” behavior, make sure to either adapt those applications or to disable strict mode. For more information about strict mode, see Server SQL Modes.
The MySQL server supports multiple character sets and it is possible to set a default server character set that is applied to all tables, columns, and databases unless overridden. Use the dialog to change the default character set of the MySQL server.
: Choose this
option if you want to use latin1 as the
default server character set. latin1 is
used for English and many Western European languages.
:
Choose this option if you want to use utf8
as the default server character set. This is a Unicode
character set that can store characters from many different
languages.
: Choose this option if you want to pick the server's default character set manually. Choose the desired character set from the provided drop-down list.
On Windows platforms, the MySQL server can be installed as a Windows service. When installed this way, the MySQL server can be started automatically during system startup, and even restarted automatically by Windows in the event of a service failure.
The MySQL Server Instance Config Wizard installs the MySQL server
as a service by default, using the service name
MySQL. If you do not wish to install the
service, uncheck the box next to the option. You can change the service
name by picking a new service name from the drop-down box provided
or by entering a new service name into the drop-down box.
Service names can include any legal character except forward
(/) or backward (\)
slashes, and must be less than 256 characters long.
If you are installing multiple versions of MySQL onto the same machine, you must choose a different service name for each version that you install. If you do not choose a different service for each installed version then the service manager information will be inconsistent and this will cause problems when you try to uninstall a previous version.
If you have already installed multiple versions using the same
service name, you must manually edit the contents of the
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
parameters within the Windows registry to update the association
of the service name with the correct server version.
Typically, when installing multiple versions you create a
service name based on the version information. For example, you
might install MySQL 5.x as mysql5, or
specific versions such as MySQL 5.1.30 as
mysql50130.
To install the MySQL server as a service but not have it started automatically at startup, uncheck the box next to the option.
The content of the security options portion of the MySQL Server Instance Configuration Wizard will depend on whether this is a new installation, or modifying an existing installation.
Setting the root password for a new installation
It is strongly recommended that you set a
root password for your MySQL
server, and the MySQL Server Instance Config Wizard
requires by default that you do so. If you do not wish to set
a root password, uncheck the box next to
the
option.
If you have previously installed MySQL, but not deleted the data directory associated with the previous installation, you may be prompted to provide the current root password. The password will be the one configured with your old data directory. If you do not want to use this data, or do not know the root password, you should cancel the installation, delete the previous installation data, and then restart the installation process. For more information on deleting MySQL data on Microsoft Windows, see Section 1.4.3, “Removing MySQL When Installed from the MSI Package”.
To set the root password, enter the desired
password into both the and
boxes.
Setting the root password for an existing installation
If you are modifying the configuration of an existing
configuration, or you are installing an upgrade and the MySQL
Server Instance Configuration Wizard has detected an existing
MySQL system, then you must enter the existing password for
root before changing the configuration
information.
If you want to change the current root
password, enter the desired new password into both the
and
boxes.
To permit root logins from across the network,
check the box next to the option. This decreases the security
of your root account.
To create an anonymous user account, check the box next to the option. Creating an anonymous account can decrease server security and cause login and permission difficulties. For this reason, it is not recommended.
The final dialog in the MySQL Server Instance Config Wizard is the . To start the configuration process, click the button. To return to a previous dialog, click the button. To exit the MySQL Server Instance Config Wizard without configuring the server, click the button.
After you click the button, the MySQL Server Instance Config Wizard performs a series of tasks and displays the progress onscreen as the tasks are performed.
The MySQL Server Instance Config Wizard first determines
configuration file options based on your choices using a template
prepared by MySQL developers and engineers. This template is named
my-template.ini and is located in your server
installation directory.
The MySQL Config Wizard then writes these options to the corresponding configuration file.
If you chose to create a service for the MySQL server, the MySQL Server Instance Config Wizard creates and starts the service. If you are reconfiguring an existing service, the MySQL Server Instance Config Wizard restarts the service to apply your configuration changes.
If you chose to set a root password, the MySQL
Config Wizard connects to the server, sets your new
root password, and applies any other security
settings you may have selected.
After the MySQL Server Instance Config Wizard has completed its tasks, it displays a summary. Click the button to exit the MySQL Server Config Wizard.
In addition to using the GUI interface to the MySQL Server Instance Config Wizard, you can also create instances automatically from the command line.
To use the MySQL Server Instance Config Wizard on the command
line, you need to use the
MySQLInstanceConfig.exe command that is
installed with MySQL in the bin directory
within the installation directory.
MySQLInstanceConfig.exe takes a number of
command-line arguments the set the properties that would normally
be selected through the GUI interface, and then creates a new
configuration file (my.ini) by combining
these selections with a template configuration file to produce the
working configuration file.
The main command line options are provided in the table below. Some of the options are required, while some options are optional.
Table 1.4 MySQL Server Instance Config Wizard Command Line Options
| Option | Description |
|---|---|
| Required Parameters | |
-nPRODUCTNAME | The name of the instance when installed |
-pPATH | Path of the base directory for installation. This is equivalent to the
directory when using the basedir
configuration parameter |
-vVERSION | The version tag to use for this installation |
| Action to Perform | |
-i | Install an instance |
-r | Remove an instance |
-s | Stop an existing instance |
-q | Perform the operation quietly |
-lFILENAME | Sae the installation progress in a logfile |
| Config File to Use | |
-tFILENAME | Path to the template config file that will be used to generate the installed configuration file |
-cFILENAME | Path to a config file to be generated |
The -t and -c options work
together to set the configuration parameters for a new instance.
The -t option specifies the template
configuration file to use as the basic configuration, which are
then merged with the configuration parameters generated by the
MySQL Server Instance Config Wizard into the configuration file
specified by the -c option.
A sample template file, my-template.ini is
provided in the toplevel MySQL installation directory. The file
contains elements are replaced automatically by the MySQL Server
Instance Config Wizard during configuration.
If you specify a configuration file that already exists, the
existing configuration file will be saved in the file with the
original, with the date and time added. For example, the
mysql.ini will be copied to mysql
2009-10-27 1646.ini.bak.
The parameters that you can specify on the command line are listed in the table below.
Table 1.5 MySQL Server Instance Config Wizard Parameters
| Parameter | Description |
|---|---|
ServiceName=$ | Specify the name of the service to be created |
AddBinToPath={yes | no} | Specifies whether to add the binary directory of MySQL to the standard
PATH environment variable |
ServerType={DEVELOPMENT | SERVER | DEDICATED} | Specify the server type. For more information, see Section 1.5.4, “MySQL Server Instance Config Wizard: The Server Type Dialog” |
DatabaseType={MIXED | INNODB | MYISAM} | Specify the default database type. For more information, see Section 1.5.5, “MySQL Server Instance Config Wizard: The Database Usage Dialog” |
ConnectionUsage={DSS | OLTP} | Specify the type of connection support, this automates the setting for
the number of concurrent connections (see the
ConnectionCount parameter). For more
information, see
Section 1.5.7, “MySQL Server Instance Config Wizard: The Concurrent Connections Dialog” |
ConnectionCount=# | Specify the number of concurrent connections to support. For more information, see Section 1.5.4, “MySQL Server Instance Config Wizard: The Server Type Dialog” |
SkipNetworking={yes | no} | Specify whether network support should be supported. Specifying
yes disables network access altogether |
Port=# | Specify the network port number to use for network connections. For more information, see Section 1.5.8, “MySQL Server Instance Config Wizard: The Networking and Strict Mode Options Dialog” |
StrictMode={yes | no} | Specify whether to use the strict SQL mode. For more
information, see
Section 1.5.8, “MySQL Server Instance Config Wizard: The Networking and Strict Mode
Options Dialog” |
Charset=$ | Specify the default character set. For more information, see Section 1.5.9, “MySQL Server Instance Config Wizard: The Character Set Dialog” |
RootPassword=$ | Specify the root password |
RootCurrentPassword=$ | Specify the current root password then stopping or reconfiguring an existing service |
When specifying options on the command line, you can enclose the
entire command-line option and the value you are specifying
using double quotation marks. This enables you to use spaces in
the options. For example, "-cC:\mysql.ini".
The following command installs a MySQL Server 5.1
instance from the directory C:\Program Files\MySQL\MySQL
Server 5.1 using the service name
MySQL51 and setting the
root password to 1234.
shell>MySQLInstanceConfig.exe -i -q "-lC:\mysql_install_log.txt" »"-nMySQL Server 5.1" "-pC:\Program Files\MySQL\MySQL Server 5.1" -v5.1.73 »"-tmy-template.ini" "-cC:\mytest.ini" ServerType=DEVELOPMENT DatabaseType=MIXED »ConnectionUsage=DSS Port=3311 ServiceName=MySQL51 RootPassword=1234
In the above example, a log file will be generated in
mysql_install_log.txt containing the
information about the instance creation process. The log file
generated by the above example is shown below:
Welcome to the MySQL Server Instance Configuration Wizard 1.0.16.0 Date: 2009-10-27 17:07:21 Installing service ... Product Name: MySQL Server 5.1 Version: 5.1.73 Installation Path: C:\Program Files\MySQL\MySQL Server 5.1\ Creating configuration file C:\mytest.ini using template my-template.ini. Options: DEVELOPMENT MIXED DSS STRICTMODE Variables: port: 3311 default-character-set: latin1 basedir: "C:/Program Files/MySQL/MySQL Server 5.1/" datadir: "C:/Program Files/MySQL/MySQL Server 5.1/Data/" Creating Windows service entry. Service name: "MySQL51" Parameters: "C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld" --defaults-file="C:\mytest.ini" MySQL51. Windows service MySQL51 installed.
When using the command line, the return values in the following table indicate an error performing the specified option.
Table 1.6 Return Value from MySQL Server Instance Config Wizard
| Value | Description |
|---|---|
| 2 | Configuration template file cannot be found |
| 3 | The Windows service entry cannot be created |
| 4 | Could not connect to the Service Control Manager |
| 5 | The MySQL service cannot be started |
| 6 | The MySQL service cannot be stopped |
| 7 | The security settings cannot be applied |
| 8 | The configuration file cannot be written |
| 9 | The Windows service entry cannot be removed |
You can perform an installation of MySQL automatically using the MSI package. For more information, see Section 1.4.2, “Automating MySQL Installation on Microsoft Windows Using the MSI Package”.
Users who are installing from the noinstall
package can use the instructions in this section to manually
install MySQL. The process for installing MySQL from a Zip archive
is as follows:
Extract the archive to the desired install directory
Create an option file
Choose a MySQL server type
Start the MySQL server
Secure the default user accounts
This process is described in the sections that follow.
To install MySQL manually, do the following:
If you are upgrading from a previous version please refer to Section 1.9, “Upgrading MySQL Server on Microsoft Windows”, before beginning the upgrade process.
Make sure that you are logged in as a user with administrator privileges.
Choose an installation location. Traditionally, the MySQL
server is installed in C:\mysql. The
MySQL Installation Wizard installs MySQL under
C:\Program Files\MySQL. If you do not
install MySQL at C:\mysql, you must
specify the path to the install directory during startup or
in an option file. See
Section 1.6.2, “Creating an Option File”.
Extract the install archive to the chosen installation location using your preferred Zip archive tool. Some tools may extract the archive to a folder within your chosen installation location. If this occurs, you can move the contents of the subfolder into the chosen installation location.
If you need to specify startup options when you run the server, you can indicate them on the command line or place them in an option file. For options that are used every time the server starts, you may find it most convenient to use an option file to specify your MySQL configuration. This is particularly true under the following circumstances:
The installation or data directory locations are different
from the default locations (C:\Program
Files\MySQL\MySQL Server 5.1 and
C:\Program Files\MySQL\MySQL Server
5.1\data).
You need to tune the server settings, such as memory, cache, or InnoDB configuration information.
When the MySQL server starts on Windows, it looks for option
files in several locations, such as the Windows directory,
C:\, and the MySQL installation directory
(for the full list of locations, see
Using Option Files). The Windows directory typically
is named something like C:\WINDOWS. You can
determine its exact location from the value of the
WINDIR environment variable using the
following command:
C:\> echo %WINDIR%
MySQL looks for options in each location first in the
my.ini file, and then in the
my.cnf file. However, to avoid confusion,
it is best if you use only one file. If your PC uses a boot
loader where C: is not the boot drive, your
only option is to use the my.ini file.
Whichever option file you use, it must be a plain text file.
You can also make use of the example option files included with your MySQL distribution; see Server Configuration Defaults.
An option file can be created and modified with any text editor,
such as Notepad. For example, if MySQL is installed in
E:\mysql and the data directory is in
E:\mydata\data, you can create an option
file containing a [mysqld] section to specify
values for the basedir and
datadir options:
[mysqld] # set basedir to your installation path basedir=E:/mysql # set datadir to the location of your data directory datadir=E:/mydata/data
Microsoft Windows path names are specified in option files using (forward) slashes rather than backslashes. If you do use backslashes, double them:
[mysqld] # set basedir to your installation path basedir=E:\\mysql # set datadir to the location of your data directory datadir=E:\\mydata\\data
The rules for use of backslash in option file values are given in Using Option Files.
In MySQL 5.1.23 and earlier, the MySQL installer places the data
directory directly under the directory where you install MySQL.
On MySQL 5.1.24 and later, the data directory is located within
the AppData directory for the user running
MySQL.
If you would like to use a data directory in a different
location, you should copy the entire contents of the
data directory to the new location. For
example, if you want to use E:\mydata as
the data directory instead, you must do two things:
Move the entire data directory and all
of its contents from the default location (for example
C:\Program Files\MySQL\MySQL Server
5.1\data) to
E:\mydata.
Use a --datadir option to
specify the new data directory location each time you start
the server.
The following table shows the available servers for Windows in MySQL 5.1.20 and earlier.
| Binary | Description |
|---|---|
| mysqld-nt | Optimized binary with named-pipe support |
| mysqld | Optimized binary without named-pipe support |
| mysqld-debug | Like mysqld-nt, but compiled with full debugging and automatic memory allocation checking |
The following table shows the available servers for Windows in MySQL 5.1.21 and later.
Table 1.7 mysqld binary types for Microsoft Windows MySQL 5.1.21 and later
| Binary | Description |
|---|---|
| mysqld | Optimized binary with named-pipe support |
| mysqld-debug | Like mysqld, but compiled with full debugging and automatic memory allocation checking |
All of the preceding binaries are optimized for modern Intel processors, but should work on any Intel i386-class or higher processor.
Each of the servers in a distribution support the same set of
storage engines. The SHOW ENGINES
statement displays which engines a given server supports.
All Windows MySQL 5.1 servers have support for symbolic linking of database directories.
MySQL supports TCP/IP on all Windows platforms. MySQL servers on Windows support named pipes as indicated in the following list. However, the default is to use TCP/IP regardless of platform. (Named pipes are slower than TCP/IP in many Windows configurations.)
Use of named pipes is subject to these conditions:
Named pipes are enabled only if you start the server with
the --enable-named-pipe
option. It is necessary to use this option explicitly
because some users have experienced problems with shutting
down the MySQL server when named pipes were used.
For MySQL 5.1.20 and earlier, named-pipe connections are permitted only by the mysqld-nt and mysqld-debug servers. For MySQL 5.1.21 and later, the mysqld and mysqld-debug servers both contain support for named-pipe connections.
Most of the examples in this manual use mysqld as the server name. If you choose to use a different server, such as mysqld-nt or mysqld-debug, make the appropriate substitutions in the commands that are shown in the examples.
This section gives a general overview of starting the MySQL server. The following sections provide more specific information for starting the MySQL server from the command line or as a Windows service.
The information here applies primarily if you installed MySQL
using the Noinstall version, or if you wish
to configure and test MySQL manually rather than with the GUI
tools.
The MySQL Notifier GUI can be used to start/stop/restart the MySQL server at any time.
The examples in these sections assume that MySQL is installed
under the default location of C:\Program
Files\MySQL\MySQL Server 5.1. Adjust the
path names shown in the examples if you have MySQL installed in
a different location.
Clients have two options. They can use TCP/IP, or they can use a named pipe if the server supports named-pipe connections.
MySQL for Windows also supports shared-memory connections if the
server is started with the
--shared-memory option. Clients
can connect through shared memory by using the
--protocol=MEMORY option.
For information about which server binary to run, see Section 1.6.3, “Selecting a MySQL Server Type”.
Testing is best done from a command prompt in a console window (or “DOS window”). In this way you can have the server display status messages in the window where they are easy to see. If something is wrong with your configuration, these messages make it easier for you to identify and fix any problems.
To start the server, enter this command:
C:\> "C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld" --console
For a server that includes InnoDB support,
you should see the messages similar to those following as it
starts (the path names and sizes may differ):
InnoDB: The first specified datafile c:\ibdata\ibdata1 did not exist: InnoDB: a new database to be created! InnoDB: Setting file c:\ibdata\ibdata1 size to 209715200 InnoDB: Database physically writes the file full: wait... InnoDB: Log file c:\iblogs\ib_logfile0 did not exist: new to be created InnoDB: Setting log file c:\iblogs\ib_logfile0 size to 31457280 InnoDB: Log file c:\iblogs\ib_logfile1 did not exist: new to be created InnoDB: Setting log file c:\iblogs\ib_logfile1 size to 31457280 InnoDB: Log file c:\iblogs\ib_logfile2 did not exist: new to be created InnoDB: Setting log file c:\iblogs\ib_logfile2 size to 31457280 InnoDB: Doublewrite buffer not found: creating new InnoDB: Doublewrite buffer created InnoDB: creating foreign key constraint system tables InnoDB: foreign key constraint system tables created 011024 10:58:25 InnoDB: Started
When the server finishes its startup sequence, you should see something like this, which indicates that the server is ready to service client connections:
mysqld: ready for connections Version: '5.1.73' socket: '' port: 3306
The server continues to write to the console any further diagnostic output it produces. You can open a new console window in which to run client programs.
If you omit the --console option,
the server writes diagnostic output to the error log in the data
directory (C:\Program Files\MySQL\MySQL Server
5.1\data by default). The error log is
the file with the .err extension, and may
be set using the --log-error
option.
The accounts that are listed in the MySQL grant tables initially have no passwords. After starting the server, you should set up passwords for them using the instructions in Securing the Initial MySQL Accounts.
The MySQL server can be started manually from the command line. This can be done on any version of Windows.
The MySQL Notifier GUI can also be used to start/stop/restart the MySQL server.
To start the mysqld server from the command line, you should start a console window (or “DOS window”) and enter this command:
C:\> "C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld"
The path to mysqld may vary depending on the install location of MySQL on your system.
You can stop the MySQL server by executing this command:
C:\> "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
with the -p option and supply the password
when prompted.
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.
Users in the MySQL grant system are wholly independent from any login users under Microsoft Windows.
If mysqld doesn't start, check the error log
to see whether the server wrote any messages there to indicate
the cause of the problem. By default, the error log is located
in the C:\Program Files\MySQL\MySQL Server
5.1\data directory. It is the file with
a suffix of .err, or may be specified by
passing in the --log-error
option. Alternatively, you can try to start the server with the
--console option; in this case,
the server may display some useful information on the screen
that will help solve the problem.
The last option is to start mysqld with the
--standalone and
--debug options. In this case,
mysqld writes a log file
C:\mysqld.trace that should contain the
reason why mysqld doesn't start. See
The DBUG Package.
Use mysqld --verbose --help to display all the options that mysqld supports.
To make it easier to invoke MySQL programs, you can add the path
name of the MySQL bin directory to your
Windows system PATH environment variable:
On the Windows desktop, right-click the My Computer icon, and select .
Next select the tab from the menu that appears, and click the button.
Under System Variables, select , and then click the button. The dialogue should appear.
Place your cursor at the end of the text appearing in the
space marked Variable Value. (Use the
End key to ensure that your cursor is
positioned at the very end of the text in this space.) Then
enter the complete path name of your MySQL
bin directory (for example,
C:\Program Files\MySQL\MySQL Server
5.1\bin)
There must be a semicolon separating this path from any values present in this field.
Dismiss this dialogue, and each dialogue in turn, by clicking until all of the dialogues that were opened have been dismissed. You should now be able to invoke any MySQL executable program by typing its name at the DOS prompt from any directory on the system, without having to supply the path. This includes the servers, the mysql client, and all MySQL command-line utilities such as mysqladmin and mysqldump.
You should not add the MySQL bin
directory to your Windows PATH if you are
running multiple MySQL servers on the same machine.
You must exercise great care when editing your system
PATH by hand; accidental deletion or
modification of any portion of the existing
PATH value can leave you with a
malfunctioning or even unusable system.
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 MySQL Notifier GUI can also be used to monitor the status of the MySQL service.
The Services utility (the Windows Service Control Manager) can be found in the Windows Control Panel (under 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:\>"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
with the -p option and supply the password
when prompted.
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.
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:\> "C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld" --install
The service-installation command does not start the server. Instructions for that are given later in this section.
To make it easier to invoke MySQL programs, you can add the path
name of the MySQL bin directory to your
Windows system PATH environment variable:
On the Windows desktop, right-click the My Computer icon, and select .
Next select the tab from the menu that appears, and click the button.
Under System Variables, select , and then click the button. The dialogue should appear.
Place your cursor at the end of the text appearing in the
space marked Variable Value. (Use the
End key to ensure that your cursor is
positioned at the very end of the text in this space.) Then
enter the complete path name of your MySQL
bin directory (for example,
C:\Program Files\MySQL\MySQL Server
5.1\bin), and there should be a
semicolon separating this path from any values present in
this field. Dismiss this dialogue, and each dialogue in
turn, by clicking until all of the
dialogues that were opened have been dismissed. You should
now be able to invoke any MySQL executable program by typing
its name at the DOS prompt from any directory on the system,
without having to supply the path. This includes the
servers, the mysql client, and all MySQL
command-line utilities such as mysqladmin
and mysqldump.
You should not add the MySQL bin
directory to your Windows PATH if you are
running multiple MySQL servers on the same machine.
You must exercise great care when editing your system
PATH by hand; accidental deletion or
modification of any portion of the existing
PATH value can leave you with a
malfunctioning or even unusable system.
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
is MySQL.
If a service name is given, it can be followed by a single
option. By convention, this should be
--defaults-file=
to specify the name of an option file from which the server
should read options when it starts.
file_name
The use of a single option other than
--defaults-file is possible
but discouraged.
--defaults-file is more
flexible because it enables you to specify multiple startup
options for the server by placing them in the named option
file.
You can also specify a --local-service
option following the service name. This causes the server to
run using the LocalService Windows
account that has limited system privileges. This account is
available only for Windows XP or newer. If both
--defaults-file and
--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 (MySQL)
following the --install option, the server
uses the a service name of MySQL and
reads options from the [mysqld] group in
the standard option files.
If the service-installation command specifies a service name
other than 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
files.
As a more complex example, consider the following command:
C:\>"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld"--install MySQL --defaults-file=C:\my-opts.cnf
Here, the default service name (MySQL) is
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
named file.
On Windows, if the server is started with the
--defaults-file and
--install options,
--install must be first.
Otherwise, mysqld.exe will attempt to start
the MySQL server.
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, C:\Program Files\MySQL\MySQL
Server 5.1\data). It is the file with a
suffix of .err.
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
using the Services utility, the NET
STOP MySQL command, or the mysqladmin
shutdown command.
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
--install option:
C:\> "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
remove it:
C:\> "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”.
If you encounter difficulties during installation, see Section 1.7, “Troubleshooting a Microsoft Windows MySQL Server Installation”.
For more information about stopping or removing a MySQL Windows service, see Starting Multiple MySQL Instances as Windows Services.
You can test whether the MySQL server is working by executing any of the following commands:
C:\>"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqlshow"C:\>"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqlshow" -u root mysqlC:\>"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqladmin" version status procC:\>"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysql" test
By default, mysqlshow will try to connect
using the ODBC user. This user is not
created by default. You should specify a valid user, or
root with the right password to check the
operation of the server.
If mysqld is slow to respond to TCP/IP
connections from client programs, there is probably a problem
with your DNS. In this case, start mysqld
with the --skip-name-resolve
option and use only localhost and IP
addresses in the Host column of the MySQL
grant tables. (Be sure that an account exists that specifies an
IP address or you may not be able to connect.)
You can force a MySQL client to use a named-pipe connection
rather than TCP/IP by specifying the
--pipe or
--protocol=PIPE option, or by
specifying . (period) as the host name. Use
the --socket option to specify
the name of the pipe if you do not want to use the default pipe
name.
If you have set a password for the root
account, deleted the anonymous account, or created a new user
account, then to connect to the MySQL server you must use the
appropriate -u and -p options
with the commands shown previously. See
Connecting to the MySQL Server.
For more information about mysqlshow, see mysqlshow — Display Database, Table, and Column Information.
When installing and running MySQL for the first time, you may encounter certain errors that prevent the MySQL server from starting. This section helps you diagnose and correct some of these errors.
Your first resource when troubleshooting server issues is the
error log. The MySQL server
uses the error log to record information relevant to the error
that prevents the server from starting. The error log is located
in the data directory
specified in your my.ini file. The default
data directory location is C:\Program Files\MySQL\MySQL
Server 5.1\data, or
C:\ProgramData\Mysql on Windows 7 and Windows
Server 2008. The C:\ProgramData directory is
hidden by default. You need to change your folder options to see
the directory and contents. For more information on the error log
and understanding the content, see The Error Log.
For information regarding possible errors, also consult the console messages displayed when the MySQL service is starting. Use the NET START MySQL command from the command line after installing mysqld as a service to see any error messages regarding the starting of the MySQL server as a service. See Section 1.6.7, “Starting MySQL Server as a Microsoft Windows Service”.
The following examples show other common error messages you might encounter when installing MySQL and starting the server for the first time:
If the MySQL server cannot find the mysql
privileges database or other critical files, it displays these
messages:
System error 1067 has occurred. Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
These messages often occur when the MySQL base or data
directories are installed in different locations than the
default locations (C:\Program Files\MySQL\MySQL
Server 5.1 and C:\Program
Files\MySQL\MySQL Server 5.1\data,
respectively).
This situation can occur when MySQL is upgraded and installed to a new location, but the configuration file is not updated to reflect the new location. In addition, old and new configuration files might conflict. Be sure to delete or rename any old configuration files when upgrading MySQL.
If you have installed MySQL to a directory other than
C:\Program Files\MySQL\MySQL Server
5.1, ensure that the MySQL server is
aware of this through the use of a configuration
(my.ini) file. Put the
my.ini file in your Windows directory,
typically C:\WINDOWS. To determine its
exact location from the value of the WINDIR
environment variable, issue the following command from the
command prompt:
C:\> echo %WINDIR%
You can create or modify an option file with any text editor,
such as Notepad. For example, if MySQL is installed in
E:\mysql and the data directory is
D:\MySQLdata, you can create the option
file and set up a [mysqld] section to
specify values for the basedir and
datadir options:
[mysqld] # set basedir to your installation path basedir=E:/mysql # set datadir to the location of your data directory datadir=D:/MySQLdata
Microsoft Windows path names are specified in option files using (forward) slashes rather than backslashes. If you do use backslashes, double them:
[mysqld] # set basedir to your installation path basedir=C:\\Program Files\\MySQL\\MySQL Server 5.1 # set datadir to the location of your data directory datadir=D:\\MySQLdata
The rules for use of backslash in option file values are given in Using Option Files.
If you change the datadir value in your MySQL
configuration file, you must move the contents of the existing
MySQL data directory before restarting the MySQL server.
If you reinstall or upgrade MySQL without first stopping and removing the existing MySQL service and install MySQL using the MySQL Config Wizard, you may see this error:
Error: Cannot create Windows service for MySql. Error: 0
This occurs when the Configuration Wizard tries to install the service and finds an existing service with the same name.
One solution to this problem is to choose a service name other
than mysql when using the configuration
wizard. This enables the new service to be installed
correctly, but leaves the outdated service in place. Although
this is harmless, it is best to remove old services that are
no longer in use.
To permanently remove the old mysql
service, execute the following command as a user with
administrative privileges, on the command line:
C:\> sc delete mysql
[SC] DeleteService SUCCESS
If the sc utility is not available for your
version of Windows, download the delsrv
utility from
http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/delsrv-o.asp
and use the delsrv mysql syntax.
GUI tools exist that perform most of the tasks described in this section, including:
MySQL Installer: Used to install and upgrade MySQL products.
MySQL Workbench: Manages the MySQL server and edits SQL queries.
MySQL Notifier: Starts, stops, or restarts the MySQL server, and monitors its status.
MySQL for Excel: Edits MySQL data with Microsoft Excel.
On Windows, you need not create the data directory and the grant
tables. MySQL Windows distributions include the grant tables with
a set of preinitialized accounts in the mysql
database under the data directory.
Regarding passwords, if you installed MySQL using the Windows Installation Wizard, you may have already assigned passwords to the accounts. (See Section 1.4.1, “Using the MySQL Installation Wizard for Microsoft Windows”.) Otherwise, use the password-assignment procedure given in Securing the Initial MySQL Accounts.
Before assigning passwords, you might want to try running some client programs to make sure that you can connect to the server and that it is operating properly. Make sure that the server is running (see Section 1.6.4, “Starting MySQL Server on Microsoft Windows for the First Time”). You can also set up a MySQL service that runs automatically when Windows starts (see Section 1.6.7, “Starting MySQL Server as a Microsoft Windows Service”).
These instructions assume that your current location is the MySQL
installation directory and that it has a bin
subdirectory containing the MySQL programs used here. If that is
not true, adjust the command path names accordingly.
If you installed MySQL using the Windows installation Wizard (see
Section 1.4.1, “Using the MySQL Installation Wizard for Microsoft Windows”), the default
installation directory is C:\Program Files\MySQL\MySQL
Server 5.1:
C:\> cd "C:\Program Files\MySQL\MySQL Server 5.1"
A common installation location for installation from a Zip package
is C:\mysql:
C:\> cd C:\mysql
Alternatively, add the bin directory to your
PATH environment variable setting. That enables
your command interpreter to find MySQL programs properly, so that
you can run a program by typing only its name, not its path name.
See Section 1.6.6, “Customizing the PATH for MySQL Tools”.
With the server running, issue the following commands to verify that you can retrieve information from the server. The output should be similar to that shown here.
Use mysqlshow to see what databases exist:
C:\> bin\mysqlshow
+--------------------+
| Databases |
+--------------------+
| information_schema |
| mysql |
| test |
+--------------------+
The list of installed databases may vary, but will always include
the minimum of mysql and
information_schema.
The preceding command (and commands for other MySQL programs such
as mysql) may not work if the correct MySQL
account does not exist. For example, the program may fail with an
error, or you may not be able to view all databases. If you
installed using the MSI packages and used the MySQL Server
Instance Config Wizard, then the root user will
have been created automatically with the password you supplied. In
this case, you should use the -u root and
-p options. (You will also need to use the
-u root and -p options if you
have already secured the initial MySQL accounts.) With
-p, you will be prompted for the
root password. For example:
C:\>bin\mysqlshow -u root -pEnter password:(enter root password here)+--------------------+ | Databases | +--------------------+ | information_schema | | mysql | | test | +--------------------+
If you specify a database name, mysqlshow displays a list of the tables within the database:
C:\> bin\mysqlshow mysql
Database: mysql
+---------------------------+
| Tables |
+---------------------------+
| columns_priv |
| db |
| event |
| func |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| host |
| ndb_binlog_index |
| plugin |
| proc |
| procs_priv |
| servers |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
Use the mysql program to select information
from a table in the mysql database:
C:\> bin\mysql -e "SELECT User, Host FROM mysql.user" mysql
+------+-----------+
| User | Host |
+------+-----------+
| root | localhost |
+------+-----------+
For more information about mysql and mysqlshow, see mysql — The MySQL Command-Line Tool, and mysqlshow — Display Database, Table, and Column Information.
If you are running a version of Windows that supports services, you can set up the MySQL server to run automatically when Windows starts. See Section 1.6.7, “Starting MySQL Server as a Microsoft Windows Service”.
To upgrade MySQL on Windows, follow these steps:
Review Upgrading MySQL, for additional information on upgrading MySQL that is not specific to Windows.
Always back up your current MySQL installation before performing an upgrade. See Database Backup Methods.
Download the latest Windows distribution of MySQL from http://dev.mysql.com/downloads/.
Before upgrading MySQL, stop the server. If the server is installed as a service, stop the service with the following command from the command prompt:
C:\> NET STOP MySQL
If you are not running the MySQL server as a service, use mysqladmin to stop it. For example, before upgrading from MySQL 5.0 to 5.1, use mysqladmin from MySQL 5.0 as follows:
C:\> "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqladmin" -u root shutdown
If the MySQL root user account has a
password, invoke mysqladmin with the
-p option and enter the password when
prompted.
Before upgrading to MySQL 5.1 from a version previous to 4.1.5, or from a version of MySQL installed from a Zip archive to a version of MySQL installed with the MySQL Installation Wizard, you must first manually remove the previous installation and MySQL service (if the server is installed as a service).
To remove the MySQL service, use the following command:
C:\> C:\mysql\bin\mysqld --remove
If you do not remove the existing service, the MySQL Installation Wizard may fail to properly install the new MySQL service.
When upgrading from MySQL 5.1.23 to MySQL 5.1.24, the change
in the default location of the data directory from a directory
within the MySQL installation to the
AppData folder means that you must
manually copy the data files from your old installation to the
new location.
If you are using the MySQL Installation Wizard, start the wizard as described in Section 1.4.1, “Using the MySQL Installation Wizard for Microsoft Windows”.
If you are upgrading MySQL from a Zip archive, extract the
archive. You may either overwrite your existing MySQL
installation (usually located at
C:\mysql), or install it into a different
directory, such as C:\mysql5. Overwriting
the existing installation is recommended. However, for
upgrades (as opposed to installing for the first time), you
must remove the data directory from your existing MySQL
installation to avoid replacing your current data files. To do
so, follow these steps:
Unzip the Zip archive in some location other than your current MySQL installation
Remove the data directory
Rezip the Zip archive
Unzip the modified Zip archive on top of your existing installation
Alternatively:
Unzip the Zip archive in some location other than your current MySQL installation
Remove the data directory
Move the data directory from the current MySQL installation to the location of the just-removed data directory
Remove the current MySQL installation
Move the unzipped installation to the location of the just-removed installation
If you were running MySQL as a Windows service and you had to remove the service earlier in this procedure, reinstall the service. (See Section 1.6.7, “Starting MySQL Server as a Microsoft Windows Service”.)
Restart the server. For example, use NET START MySQL if you run MySQL as a service, or invoke mysqld directly otherwise.
As Administrator, run mysql_upgrade to check your tables, attempt to repair them if necessary, and update your grant tables if they have changed so that you can take advantage of any new capabilities. See mysql_upgrade — Check and Upgrade MySQL Tables.
If you encounter errors, see Section 1.7, “Troubleshooting a Microsoft Windows MySQL Server Installation”.