
2.2 Installing MySQL on Unix/Linux Using Generic Binaries

   Oracle provides a set of binary distributions of MySQL. These
   include binary distributions in the form of compressed tar files
   (files with a .tar.gz extension) for a number of platforms, as
   well as binaries in platform-specific package formats for selected
   platforms.

   This section covers the installation of MySQL from a compressed
   tar file binary distribution. For other platform-specific package
   formats, see the other platform-specific sections. For example,
   for Windows distributions, see Section 2.3, "Installing MySQL on
   Microsoft Windows."

   To obtain MySQL, see Section 2.1.3, "How to Get MySQL."

   MySQL compressed tar file binary distributions have names of the
   form mysql-VERSION-OS.tar.gz, where VERSION is a number (for
   example, 5.1.73), and OS indicates the type of operating system
   for which the distribution is intended (for example, pc-linux-i686
   or winx64).

   To install MySQL from a compressed tar file binary distribution,
   your system must have GNU gunzip to uncompress the distribution
   and a reasonable tar to unpack it. If your tar program supports
   the z option, it can both uncompress and unpack the file.

   GNU tar is known to work. The standard tar provided with some
   operating systems is not able to unpack the long file names in the
   MySQL distribution. You should download and install GNU tar, or if
   available, use a preinstalled version of GNU tar. Usually this is
   available as gnutar, gtar, or as tar within a GNU or Free Software
   directory, such as /usr/sfw/bin or /usr/local/bin. GNU tar is
   available from http://www.gnu.org/software/tar/.
   Warning

   If you have previously installed MySQL using your operating system
   native package management system, such as yum or apt-get, you may
   experience problems installing using a native binary. Make sure
   your previous MySQL previous installation has been removed
   entirely (using your package management system), and that any
   additional files, such as old versions of your data files, have
   also been removed. You should also check the existence of
   configuration files such as /etc/my.cnf or the /etc/mysql
   directory have been deleted.

   If you run into problems and need to file a bug report, please use
   the instructions in Section 1.7, "How to Report Bugs or Problems."

   On Unix, to install a compressed tar file binary distribution,
   unpack it at the installation location you choose (typically
   /usr/local/mysql). This creates the directories shown in the
   following table.

   Table 2.3 MySQL Installation Layout for Generic Unix/Linux Binary
   Package
   Directory Contents of Directory
   bin Client programs and the mysqld server
   data Log files, databases
   docs Manual in Info format
   man Unix manual pages
   include Include (header) files
   lib Libraries
   scripts mysql_install_db
   share Miscellaneous support files, including error messages,
   sample configuration files, SQL for database installation
   sql-bench Benchmarks

   Debug versions of the mysqld binary are available as mysqld-debug.
   To compile your own debug version of MySQL from a source
   distribution, use the appropriate configuration options to enable
   debugging support. For more information on compiling from source,
   see Section 2.11, "Installing MySQL from Source."

   To install and use a MySQL binary distribution, the basic command
   sequence looks like this:
shell> groupadd mysql
shell> useradd -r -g mysql mysql
shell> cd /usr/local
shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz
shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell> cd mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> scripts/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql data
# Next command is optional
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> bin/mysqld_safe --user=mysql &
# Next command is optional
shell> cp support-files/mysql.server /etc/init.d/mysql.server

   A more detailed version of the preceding description for
   installing a binary distribution follows.
   Note

   This procedure assumes that you have root (administrator) access
   to your system. Alternatively, you can prefix each command using
   the sudo (Linux) or pfexec (OpenSolaris) command.

   The procedure does not set up any passwords for MySQL accounts.
   After following the procedure, proceed to Section 2.12.2,
   "Securing the Initial MySQL Accounts."

Create a mysql User and Group

   If your system does not already have a user and group for mysqld
   to run as, you may need to create one. The following commands add
   the mysql group and the mysql user. You might want to call the
   user and group something else instead of mysql. If so, substitute
   the appropriate name in the following instructions. The syntax for
   useradd and groupadd may differ slightly on different versions of
   Unix, or they may have different names such as adduser and
   addgroup.
shell> groupadd mysql
shell> useradd -r -g mysql mysql

   Note

   Because the user is required only for ownership purposes, not
   login purposes, the useradd command uses the -r option to create a
   user that does not have login permissions to your server host.
   Omit this option to permit logins for the user (or if your useradd
   does not support the option).

Obtain and Unpack the Distribution

   Pick the directory under which you want to unpack the distribution
   and change location into it. The example here unpacks the
   distribution under /usr/local. The instructions, therefore, assume
   that you have permission to create files and directories in
   /usr/local. If that directory is protected, you must perform the
   installation as root.
shell> cd /usr/local

   Obtain a distribution file using the instructions in Section
   2.1.3, "How to Get MySQL." For a given release, binary
   distributions for all platforms are built from the same MySQL
   source distribution.

   Unpack the distribution, which creates the installation directory.
   Then create a symbolic link to that directory. tar can uncompress
   and unpack the distribution if it has z option support:
shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz
shell> ln -s full-path-to-mysql-VERSION-OS mysql

   The tar command creates a directory named mysql-VERSION-OS. The ln
   command makes a symbolic link to that directory. This enables you
   to refer more easily to the installation directory as
   /usr/local/mysql.

   If your tar does not have z option support, use gunzip to unpack
   the distribution and tar to unpack it. Replace the preceding tar
   command with the following alternative command to uncompress and
   extract the distribution:
shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf -

Perform Postinstallation Setup

   The remainder of the installation process involves setting up the
   configuration file, creating the core databases, and starting the
   MySQL server. For next steps, see Section 2.12, "Postinstallation
   Setup and Testing."
   Note

   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 Section 2.12.2,
   "Securing the Initial MySQL Accounts."

2.3 Installing MySQL on Microsoft Windows

   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 2.3.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 Section D.7.6, "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
       (http://dev.mysql.com/doc/connector-odbc/en/index.html).

     * 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
       (http://dev.mysql.com/doc/connector-net/en/index.html).

   MySQL distributions for Windows can be downloaded from
   http://dev.mysql.com/downloads/. See Section 2.1.3, "How to Get
   MySQL."

   MySQL for Windows is available in several distribution formats,
   detailed below. 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 2.3.2, "Choosing the Installation Package for
       Microsoft Windows"
       For instructions on installing MySQL using one of the MSI
       installation packages, see Section 2.3.3, "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 2.3.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
       Section 2.11.7, "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 Section
       13.1.17, "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 2.3.6.2,
       "Creating an Option File."

2.3.1 MySQL Installation Layout on Microsoft Windows

   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 2.4 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 2.5 Installation Layout for Microsoft Windows using MySQL
   5.1.24 and later
   Directory Contents of Directory Notes
   bin Client programs and the mysqld server
   %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
   scripts Utility scripts
   share Miscellaneous support files, including error messages,
   character set files, sample configuration files, SQL for database
   installation

2.3.2 Choosing the Installation Package for Microsoft Windows

   For MySQL 5.1, there are three installation package formats to
   choose from when installing MySQL on Windows:
   Note

   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
   (http://dev.mysql.com/doc/refman/5.5/en/mysql-installer.html)
   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 2.6 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
   below:

   Figure 2.7 Installation Workflow for Windows Using MSI
   Installation Workflow for Windows using MSI

   The workflow for installing using the MSI installer is shown
   below:

   Figure 2.8 Installation Workflow for Windows Using Zip
   Installation Workflow for Windows using Zip
   Note

   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
   below 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 2.3.3, "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 2.3.3, "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 2.3.3.2, "Automating
   MySQL Installation on Microsoft Windows Using the MSI Package." To
   automate the creation of a MySQL instance, see Section 2.3.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 2.3.3, "Installing MySQL on
   Microsoft Windows Using an MSI Package." If you choose to install
   a Noinstall archive, see Section 2.3.6, "Installing MySQL on
   Microsoft Windows Using a noinstall Zip Archive."

2.3.3 Installing MySQL on Microsoft Windows Using an MSI Package

   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 2.3.3.1, "Using the MySQL Installation
       Wizard for Microsoft Windows."

     * For information on installing using the command line using the
       MSI package, see Section 2.3.3.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 2.3.3.3, "Removing MySQL
       When Installed from the MSI Package."

   The workflow sequence for using the installer is shown in the
   figure below:

   Figure 2.9 Installation Workflow for Windows Using MSI Installer
   Installation Workflow for Windows using MSI Installer
   Note

   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:

    1. First ensure that you are logged in as an Administrator or a
       user with Administrator privileges.

    2. Go to the Control Panel, and double click the Windows Firewall
       icon.

    3. Choose the Allow a program through Windows Firewall option and
       click the Add port button.

    4. Enter MySQL into the Name text box and 3306 (or the port of
       your choice) into the Port number text box.

    5. Also ensure that the TCP protocol radio button is selected.

    6. If you wish, you can also limit access to the MySQL server by
       choosing the Change scope button.

    7. Confirm your choices by clicking the OK 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.
   Note

   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:

    1. Open Control Panel.

    2. Under the User Accounts and Family Safety, select Add or
       remove user accounts.

    3. Click the Got to the main User Accounts page link.

    4. Click on Turn User Account Control on or off. You may be
       prompted to provide permission to change this setting. Click
       Continue.

    5. Deselect or uncheck the check box next to Use User Account
       Control (UAC) to help protect your computer. Click OK to save
       the setting.

   You will need to restart to complete the process. Click Restart
   Now to reboot the machine and apply the changes. You can then
   follow the instructions below for installing Windows.

2.3.3.1 Using the MySQL Installation Wizard for Microsoft 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 2.3.3.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
   2.3.3.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
   (http://support.microsoft.com/default.aspx?scid=kb;EN-US;292539)
   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 Section 1.7, "How to Report Bugs or
   Problems."

2.3.3.1.1 MySQL Installation Wizard: Downloading and Starting

   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.

2.3.3.1.2 MySQL Installation Wizard: Choosing an Install Type

   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 2.3.3.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 Next 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 Next button, you advance to the
   custom installation dialog, described in Section 2.3.3.1.3, "MySQL
   Installation Wizard: The Custom Install Dialog."

2.3.3.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
   Change... button to the right of the displayed installation path.

   After choosing your installation components and installation path,
   click the Next button to advance to the confirmation dialog.

2.3.3.1.4 MySQL Installation Wizard: 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 Install button. To change your settings, click the Back
   button. To exit the MySQL Installation Wizard without installing
   MySQL, click the Cancel 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 (http://forums.mysql.com), along with the ability
   to report bugs at bugs.mysql.com (http://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.

2.3.3.1.5 MySQL Installation Wizard: Changes Made

   Once you click the Install 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 major
   version of MySQL that you install.

   The MySQL Installation Wizard creates a key named after the major
   version 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
   Start menu under a common MySQL menu heading named after the major
   version of MySQL that you have installed. For example, if you
   install MySQL 5.1, the MySQL Installation Wizard creates a MySQL
   Server 5.1 section in the Start menu.

   The following entries are created within the new Start menu
   section:

     * MySQL Command-Line Client: 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.

     * MySQL Server Instance Config Wizard: This is a shortcut to the
       MySQL Config Wizard. Use this shortcut to configure a newly
       installed server, or to reconfigure an existing server.

     * MySQL Documentation: 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:\Program Files\MySQL\MySQL Server 5.1, where Program
   Files is the default location for applications in your system, and
   5.1 is the major version 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:\Program Files\MySQL, where Program 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.

2.3.3.1.6 MySQL Installation Wizard: Upgrading MySQL

   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:

         1. Stop the current server manually using net stop or
            mysqladmin shutdown.

         2. 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.

         3. 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.

         4. 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 2.3.8, "Upgrading MySQL Server on Microsoft Windows."

2.3.3.2 Automating MySQL Installation on Microsoft Windows Using the
MSI Package

   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 2.3.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
   (http://support.microsoft.com/kb/816102).

2.3.3.3 Removing MySQL When Installed from the MSI Package

   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:

    1. Right-click the start menu and choose Control Panel.

    2. 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.

    3. Find MySQL in the list of installed software. MySQL Server is
       installed against major version numbers (MySQL 5.0, MySQL 5.1,
       etc.). Select the version that you want to remove and click
       Remove.

    4. You will be prompted to confirm the removal. Click Yes 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.
       Note
       The C:\ProgramData directory is hidden by default. You must
       change your folder options to view the hidden file. Choose
       Organize, Folder and search options, Show hidden folders.

2.3.4 MySQL Notifier

   The 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. The MySQL
   Notifier also gives quick access to several MySQL GUI tools (such
   as 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.
   Note

   To install, download and execute the MySQL Installer
   (http://dev.mysql.com/downloads/installer/), be sure the MySQL
   Notifier product is selected, then proceed with the installation.
   See the MySQL Installer manual
   (http://dev.mysql.com/doc/refman/5.5/en/mysql-installer.html) for
   additional details.

   For notes detailing the changes in each release of MySQL Notifier,
   see the MySQL Notifier Release Notes
   (http://dev.mysql.com/doc/relnotes/mysql-notifier/en/).

   Visit the MySQL Notifier forum
   (http://forums.mysql.com/list.php?173) for additional MySQL
   Notifier help and support.

   Features include:

     * Start, Stop, and Restart instances of the MySQL Server.

     * Automatically detects (and adds) new MySQL Server services.
       These are listed under Manage Monitored Items, 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
       Configure Instance will load the MySQL Workbench Server
       Administration window for that particular instance.

     * If MySQL Workbench is also installed, then the Configure
       Instance and SQL Editor options are available for local (but
       not remote) MySQL instances.

     * Monitoring of both local and remote MySQL instances.

   Note

   Remote monitoring is available since MySQL Notifier 1.1.0.

   The 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.

   The 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 the MySQL
   Notifier.
   Note

   The Automatically add new services whose name contains option
   default changed from ".*mysqld.*" to "mysql" in Notifier 1.1.0.

   Clicking the system tray icon will reveal several options, as seen
   in the screenshots below:

   The Service Instance menu is the main MySQL Notifier window, and
   enables you to Stop, Start, and Restart the MySQL Server.

   Figure 2.10 MySQL Notifier Service Instance menu
   MySQL Notifier Service Instance menu

   The Actions 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.
   Note

   The main menu will not show the Actions menu when there are no
   services being monitored by MySQL Notifier.
   Note

   The Refresh Status feature is available since MySQL Notifier
   1.1.0.

   Figure 2.11 MySQL Notifier Actions menu
   MySQL Notifier Actions menu

   The Actions, Options menu configures MySQL Notifier and includes
   options to:

     * Use colorful status icons: Enables a colorful style of icons
       for the tray of the 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.
       monitored services, and also filters the list of the Microsoft
       Windows services for the Add New Service dialog.
       Prior to version 1.1.0, this option was named "Automatically
       add new services that match this pattern."

     * 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.

   Figure 2.12 MySQL Notifier Options menu
   MySQL Notifier Options menu

   The Actions, Manage Monitored Items menu enables you to configure
   the monitored services and MySQL instances. First, with the
   Services tab open:

   Figure 2.13 MySQL Notifier Manage Services menu
   MySQL Notifier Manage Services menu

   The Instances tab is similar:

   Figure 2.14 MySQL Notifier Manage Instances menu
   MySQL Notifier Manage Instances menu

   Adding a service or instance (after clicking Add in the Manage
   Monitored Items 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 OK to accept. Multiple services
   and instances may be selected.

   Figure 2.15 MySQL Notifier Adding new services
   MySQL Notifier Adding new services

   And instances:

   Figure 2.16 MySQL Notifier Adding new instances
   MySQL Notifier Adding new instances
   Note

   The Instances tab available since MySQL Notifier 1.1.0.

2.3.4.1 Remote monitoring set up and installation instructions

   The MySQL Notifier uses Windows Management Instrumentation (WMI)
   to manage and monitor services in remote computers running Windows
   XP or later. This guide explains how it works, and how to set up
   your system to monitor remote MySQL instances.
   Note

   Remote monitoring is available since MySQL Notifier 1.1.0.

   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 the 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 notifications 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.

   Figure 2.17 MySQL Notifier Distributed Component Object Model
   (DCOM)
   MySQL Notifier Distributed Component Object Model (DCOM)

   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 Section 2.3.4.1, "."

   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).

Computer running MySQL Notifier (Computer A)


    1. Allow for remote administration by either editing the Group
       Policy Editor, or using NETSH:
       Using the Group Policy Editor:
         a. Click Start, click Run, type GPEDIT.MSC, and then click
            OK.
         b. Under the Local Computer Policy heading, double-click
            Computer Configuration.
         c. Double-click Administrative Templates, then Network,
            Network Connections, and then Windows Firewall.
         d. If the computer is in the domain, then double-click
            Domain Profile; otherwise, double-click Standard Profile.
         e. Click Windows Firewall: Allow inbound remote
            administration exception.
         f. On the Action menu either select Edit, or double-click
            the selection from the previous step.
         g. Check the Enabled radio button, and then click OK.
       Using the NETSH command:
         a. Open a command prompt window with Administrative rights
            (you can right-click the Command Prompt icon and click
            Run as Administrator).
         b. Execute the following command:
NETSH firewall set service RemoteAdmin enable

    2. Open the DCOM port TCP 135:
         a. Open a command prompt window with Administrative rights
            (you can right-click the Command Prompt icon and click
            Run as Administrator) .
         b. Execute the following command:
NETSH firewall add portopening protocol=tcp port=135 name=DCOM_TCP135

    3. Add the client application which 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:
         a. In the Control Panel, double-click Windows Firewall.
         b. In the Windows Firewall window's left panel, click Allow
            a program or feature through Windows Firewall.
         c. In the Allowed Programs window, click Change Settings.
         d. 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).
         e. If MySqlNotifier.exe is not in the list, click Allow
            another program....
         f. 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 Add.
         g. Make sure MySqlNotifier.exe is checked for the type of
            networks the computer connects to (Private, Public or
            both).
       Using the NETSH command:
         a. Open a command prompt window with Administrative rights
            (you can right-click the Command Prompt icon and click
            Run as Administrator).
         b. Execute the following command, where you change
            "[YOUR_INSTALL_DIRECTORY]":
NETSH firewall add allowedprogram program=[YOUR_INSTALL_DIRECTORY]\My
SqlNotifier.exe name=MySqlNotifier

    4. 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:
         a. Click Start, click Run, type DCOMCNFG, and then click OK.
         b. In the Component Services dialog box, expand Component
            Services, expand Computers, and then right-click My
            Computer and click Properties.
         c. In the My Computer Properties dialog box, click the COM
            Security tab.
         d. Under Access Permissions, click Edit Limits.
         e. 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 OK.

Monitored Remote Computer (Computer B)

   If the user account that is logged into 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:

    1. Grant "DCOM remote launch" and activation permissions for a
       user or group:
         a. Click Start, click Run, type DCOMCNFG, and then click OK.
         b. In the Component Services dialog box, expand Component
            Services, expand Computers, and then right-click My
            Computer and click Properties.
         c. In the My Computer Properties dialog box, click the COM
            Security tab.
         d. Under Access Permissions, click Edit Limits.
         e. In the Launch Permission dialog box, follow these steps
            if your name or your group does not appear in the Groups
            or user names list:
              i. In the Launch Permission dialog box, click Add.
             ii. In the Select Users, Computers, or Groups dialog
                 box, add your name and the group in the "Enter the
                 object names to select" box, and then click OK.
         f. In the Launch 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 OK.
       Grant DCOM remote access permissions:
         a. Click Start, click Run, type DCOMCNFG, and then click OK.
         b. In the Component Services dialog box, expand Component
            Services, expand Computers, and then right-click My
            Computer and click Properties.
         c. In the My Computer Properties dialog box, click the COM
            Security tab.
         d. Under Access Permissions, click Edit Limits.
         e. 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 OK.

    2. Allowing non-administrator users access to a specific WMI
       namespace:
         a. In the Control Panel, double-click Administrative Tools.
         b. In the Administrative Tools window, double-click Computer
            Management.
         c. In the Computer Management window, expand the Services
            and Applications tree and double-click the WMI Control.
         d. Right-click the WMI Control icon and select Properties.
         e. In the WMI Control Properties window, click the Security
            tab.
         f. In the Security tab, select the namespace and click
            Security.
         g. Locate the appropriate account and check Remote Enable in
            the Permissions list.

    3. Allow for remote administration by either editing the Group
       Policy Editor or using NETSH:
       Using the Group Policy Editor:
         a. Click Start, click Run, type GPEDIT.MSC, and then click
            OK.
         b. Under the Local Computer Policy heading, double-click
            Computer Configuration.
         c. Double-click Administrative Templates, then Network,
            Network Connections, and then Windows Firewall.
         d. If the computer is in the domain, then double-click
            Domain Profile; otherwise, double-click Standard Profile.
         e. Click Windows Firewall: Allow inbound remote
            administration exception.
         f. On the Action menu either select Edit, or double-click
            the selection from the previous step.
         g. Check the Enabled radio button, and then click OK.
       Using the NETSH command:
         a. Open a command prompt window with Administrative rights
            (you can right-click the Command Prompt icon and click
            Run as Administrator).
         b. Execute the following command:
NETSH firewall set service RemoteAdmin enable

    4. Now, be sure the user you are logging in with uses the Name
       value and not the Full Name value:
         a. In the Control Panel, double-click Administrative Tools.
         b. In the Administrative Tools window, double-click Computer
            Management.
         c. In the Computer Management window, expand the System
            Tools then Local Users and Groups.
         d. 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.

    5. If the remote computer is running on Windows XP Professional,
       make sure that remote logins are not being forcefully changed
       to the guest account user (also known as ForceGuest), which is
       enabled by default on computers that are not attached to a
       domain.
         a. Click Start, click Run, type SECPOL.MSC, and then click
            OK.
         b. Under the Local Policies node, double-click Security
            Options.
         c. Select Network Access: Sharing and security model for
            local accounts and save.

Common Errors


     * 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.

2.3.5 Using the MySQL Server Instance Config Wizard

   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:

   Figure 2.18 MySQL Server Instance Config Wizard Workflow
   MySQL Server Instance Config Wizard Workflow

2.3.5.1 Starting the MySQL Server Instance Config Wizard

   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 2.3.3.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.
   MySQL Server Instance Config Wizard

   You can launch the MySQL Config Wizard by clicking the MySQL
   Server Instance Config Wizard entry in the MySQL section of the
   Windows Start 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 Section 5.1.3, "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.

2.3.5.2 MySQL Server Instance Config Wizard: Choosing a Maintenance
Option

   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 Re-configure
   Instance option and click the Next 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 Remove
   Instance option and click the Next button.

   If you choose the Remove Instance option, you advance to a
   confirmation window. Click the Execute 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 Re-configure Instance option, you advance to the
   Configuration Type dialog where you can choose the type of
   installation that you wish to configure.

2.3.5.3 MySQL Server Instance Config Wizard: Choosing a Configuration
Type

   When you start the MySQL Server Instance Config Wizard for a new
   MySQL installation, or choose the Re-configure Instance option for
   an existing installation, you advance to the Configuration Type
   dialog.
   MySQL Server Instance Config Wizard: Configuration Type

   There are two configuration types available: Detailed
   Configuration and Standard Configuration. The Standard
   Configuration option is intended for new users who want to get
   started with MySQL quickly without having to make many decisions
   about server configuration. The Detailed Configuration 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 Standard Configuration should
   suit your needs. Choosing the Standard Configuration option causes
   the MySQL Config Wizard to set all configuration options
   automatically with the exception of Service Options and Security
   Options.

   The Standard Configuration 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 Detailed Configuration
   option is recommended.

   To complete the Standard Configuration, please refer to the
   sections on Service Options and Security Options in Section
   2.3.5.10, "MySQL Server Instance Config Wizard: The Service
   Options Dialog," and Section 2.3.5.11, "MySQL Server Instance
   Config Wizard: The Security Options Dialog," respectively.

2.3.5.4 MySQL Server Instance Config Wizard: The Server Type Dialog

   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.
   MySQL Server Instance Config Wizard: Server Type

     * Developer Machine: 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.

     * Server Machine: 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.

     * Dedicated MySQL Server Machine: 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.

   Note

   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.

2.3.5.5 MySQL Server Instance Config Wizard: The Database Usage
Dialog

   The Database Usage 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.
   MySQL Server Instance Config Wizard: Usage Dialog

     * Multifunctional Database: 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.

     * Transactional Database Only: 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.

     * Non-Transactional Database Only: 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 Database Usage 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.

2.3.5.6 MySQL Server Instance Config Wizard: The InnoDB Tablespace
Dialog

   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.
   MySQL Server Instance Config Wizard: InnoDB Data Tablespace

   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 Modify 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.

2.3.5.7 MySQL Server Instance Config Wizard: The Concurrent
Connections Dialog

   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 Concurrent Connections
   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.
   MySQL Server Instance Config Wizard: Connections

     * Decision Support (DSS)/OLAP: 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.

     * Online Transaction Processing (OLTP): Choose this option if
       your server requires a large number of concurrent connections.
       The maximum number of connections is set at 500.

     * Manual Setting: 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.

2.3.5.8 MySQL Server Instance Config Wizard: The Networking and
Strict Mode Options Dialog

   Use the Networking Options dialog to enable or disable TCP/IP
   networking and to configure the port number that is used to
   connect to the MySQL server.
   MySQL Server Instance Config Wizard: Network Configuration

   TCP/IP networking is enabled by default. To disable TCP/IP
   networking, uncheck the box next to the Enable TCP/IP Networking
   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 Server SQL Mode 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 Section 5.1.7, "Server SQL Modes."

2.3.5.9 MySQL Server Instance Config Wizard: The Character Set Dialog

   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
   Character Set dialog to change the default character set of the
   MySQL server.
   MySQL Server Instance Config Wizard: Character Set

     * Standard Character Set: 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.

     * Best Support For Multilingualism: 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.

     * Manual Selected Default Character Set / Collation: 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.

2.3.5.10 MySQL Server Instance Config Wizard: The Service Options
Dialog

   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
   Install As Windows Service 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.
   Note

   Service names can include any legal character except forward (/)
   or backward (\) slashes, and must be less than 256 characters
   long.
   Warning

   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 Launch the
   MySQL Server Automatically option.

2.3.5.11 MySQL Server Instance Config Wizard: The Security Options
Dialog

   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 Modify Security
       Settings option.
       Note
       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 2.3.3.3, "Removing
       MySQL When Installed from the MSI Package."
       MySQL Server Instance Config Wizard: Security

     * To set the root password, enter the desired password into both
       the New root password and Confirm 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.
       MySQL Server Instance Config Wizard: Security (Existing
       Installation)
       If you want to change the current root password, enter the
       desired new password into both the New root password and
       Confirm boxes.

   To permit root logins from across the network, check the box next
   to the Enable root access from remote machines option. This
   decreases the security of your root account.

   To create an anonymous user account, check the box next to the
   Create An Anonymous Account option. Creating an anonymous account
   can decrease server security and cause login and permission
   difficulties. For this reason, it is not recommended.

2.3.5.12 MySQL Server Instance Config Wizard: The Confirmation Dialog

   The final dialog in the MySQL Server Instance Config Wizard is the
   Confirmation Dialog. To start the configuration process, click the
   Execute button. To return to a previous dialog, click the Back
   button. To exit the MySQL Server Instance Config Wizard without
   configuring the server, click the Cancel button.
   MySQL Server Instance Config Wizard: Confirmation

   After you click the Execute 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 Finish button to exit the
   MySQL Server Config Wizard.

2.3.5.13 MySQL Server Instance Config Wizard: Creating an Instance
from the Command Line

   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 2.7 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 2.8 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 2.3.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 2.3.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 2.3.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 2.3.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 2.3.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 2.3.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 2.3.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
   Note

   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 Datab
aseType=MIXED »
   ConnectionUsage=DSS Port=3311 ServiceName=MySQL51 RootPassword=123
4

   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 2.9 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 2.3.3.2,
   "Automating MySQL Installation on Microsoft Windows Using the MSI
   Package."

2.3.6 Installing MySQL on Microsoft Windows Using a noinstall Zip
Archive

   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:

    1. Extract the archive to the desired install directory

    2. Create an option file

    3. Choose a MySQL server type

    4. Start the MySQL server

    5. Secure the default user accounts

   This process is described in the sections that follow.

2.3.6.1 Extracting the Install Archive

   To install MySQL manually, do the following:

    1. If you are upgrading from a previous version please refer to
       Section 2.3.8, "Upgrading MySQL Server on Microsoft Windows,"
       before beginning the upgrade process.

    2. Make sure that you are logged in as a user with administrator
       privileges.

    3. 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 2.3.6.2, "Creating an Option File."

    4. 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.

2.3.6.2 Creating an Option File

   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
   Section 4.2.6, "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 Section 5.1.2, "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

   Note that 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
   Section 4.2.6, "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:

    1. 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.

    2. Use a --datadir option to specify the new data directory
       location each time you start the server.

2.3.6.3 Selecting a MySQL Server Type

   The following table shows the available servers for Windows in
   MySQL 5.1.20 and earlier.

   Table 2.10 mysqld binary types for Microsoft Windows up to MySQL
   5.1.20
   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 2.11 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.

   Note

   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.

2.3.6.4 Starting MySQL Server on Microsoft Windows for the First Time

   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 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
   2.3.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 creat
ed
InnoDB: Setting log file c:\iblogs\ib_logfile0 size to 31457280
InnoDB: Log file c:\iblogs\ib_logfile1 did not exist: new to be creat
ed
InnoDB: Setting log file c:\iblogs\ib_logfile1 size to 31457280
InnoDB: Log file c:\iblogs\ib_logfile2 did not exist: new to be creat
ed
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.
   Note

   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 Section 2.12.2,
   "Securing the Initial MySQL Accounts."

2.3.6.5 Starting MySQL Server from the Windows Command Line

   The MySQL server can be started manually from the command line.
   This can be done on any version of Windows.

   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

   Note

   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. Note that users
   in the MySQL grant system are wholly independent from any login
   users under 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. 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. You can also try to start the server as mysqld
   --console; in this case, you may get some useful information on
   the screen that may 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 Section 22.4.3, "The DBUG Package."

   Use mysqld --verbose --help to display all the options that mysqld
   supports.

2.3.6.6 Customizing the PATH for MySQL Tools

   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 Properties.

     * Next select the Advanced tab from the System Properties menu
       that appears, and click the Environment Variables button.

     * Under System Variables, select Path, and then click the Edit
       button. The Edit System Variable 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)
       Note
       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
       OK 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.

   Warning

   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.

2.3.6.7 Starting MySQL Server as a Microsoft Windows Service

   On Windows, the recommended way to run MySQL is to install it as a
   Windows service, so that MySQL starts and stops automatically when
   Windows starts and stops, and can be managed using the service
   manager framework. A MySQL server installed as a service can also
   be controlled from the command line using NET commands, or with
   the graphical Services utility. Generally, to install MySQL as a
   Windows service you should be logged in using an account that has
   administrator rights.

   The Services utility (the Windows Service Control Manager) can be
   found in the Windows Control Panel (under Administrative Tools on
   Windows 2000, XP, Vista, and Server 2003). To avoid conflicts, it
   is advisable to close the Services utility while performing server
   installation or removal operations from the command line.

Installing the service

   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

   Note

   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. Note that users
   in the MySQL grant system are wholly independent from any login
   users under Windows.

   Install the server as a service using this command:
C:\> "C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld" --install

   Note

   The service-installation command does not start the server.

   The following additional arguments can be used when installing the
   service:

     * You can specify a service name immediately following the
       --install option. The default service name is MySQL.

     * If a service name is given, it can be followed by a single
       option. By convention, this should be
       --defaults-file=file_name to specify the name of an option
       file from which the server should read options when it starts.
       The use of a single option other than --defaults-file is
       possible 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.
   Note

   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.

Starting the 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-m
anual

Removing the service

   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 2.3.6.5, "Starting
   MySQL Server from the Windows Command Line."

   Please see Section 2.3.7, "Troubleshooting a Microsoft Windows
   MySQL Server Installation," if you encounter difficulties during
   installation.

2.3.6.8 Testing The MySQL Server Installation on Microsoft Windows

   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
mysql
C:\> "C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqladmin" version
 status proc
C:\> "C:\Program Files\MySQL\MySQL Server 5.1\bin\mysql" test

   Note

   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.

   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.

   Note that 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 Section 4.2.2,
   "Connecting to the MySQL Server."

   For more information about mysqlshow, see Section 4.5.6,
   "mysqlshow --- Display Database, Table, and Column Information."

2.3.7 Troubleshooting a Microsoft Windows MySQL Server Installation

   When installing and running MySQL for the first time, you may
   encounter certain errors that prevent the MySQL server from
   starting. The purpose of this section is to help you diagnose and
   correct some of these errors.

   Your first resource when troubleshooting server issues is the
   error log
   (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_error_l
   og). 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
   (http://dev.mysql.com/doc/refman/5.5/en/glossary.html#glos_data_di
   rectory) 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
   Section 5.2.2, "The Error Log."

   Another source of information regarding possible errors is 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 2.3.6.7,
   "Starting MySQL Server as a Microsoft Windows Service."

   The following examples show other common error messages you may
   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, you may see these messages:
System error 1067 has occurred.
Fatal error: Can't open privilege tables: Table 'mysql.host' 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 may 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, there may be old and
       new configuration files that 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, you need to ensure
       that the MySQL server is aware of this through the use of a
       configuration (my.ini) file. The my.ini file needs to be
       located in your Windows directory, typically C:\WINDOWS. You
       can determine its exact location from the value of the WINDIR
       environment variable by issuing the following command from the
       command prompt:
C:\> echo %WINDIR%
       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 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
       Note that 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 Section 4.2.6, "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.
       See Section 2.3.6.2, "Creating an Option File."

     * 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 Config 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/exi
       sting/delsrv-o.asp and use the delsrv mysql syntax.

2.3.8 Upgrading MySQL Server on Microsoft Windows

   To upgrade MySQL on Windows, follow these steps:

    1. Review Section 2.13.1, "Upgrading MySQL," for additional
       information on upgrading MySQL that is not specific to
       Windows.

    2. You should always back up your current MySQL installation
       before performing an upgrade. See Section 7.2, "Database
       Backup Methods."

    3. Download the latest Windows distribution of MySQL from
       http://dev.mysql.com/downloads/.

    4. Before upgrading MySQL, you must 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
       Note
       If the MySQL root user account has a password, you need to
       invoke mysqladmin with the -p option and enter the password
       when prompted.

    5. 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
       Important
       If you do not remove the existing service, the MySQL
       Installation Wizard may fail to properly install the new MySQL
       service.

    6. 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.

    7. If you are using the MySQL Installation Wizard, start the
       wizard as described in Section 2.3.3.1, "Using the MySQL
       Installation Wizard for Microsoft Windows."

    8. If you are installing 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.

    9. 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 2.3.6.7, "Starting MySQL Server as a
       Microsoft Windows Service.")
   10. Restart the server. For example, use NET START MySQL if you
       run MySQL as a service, or invoke mysqld directly otherwise.
   11. 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 Section 4.4.8, "mysql_upgrade ---
       Check and Upgrade MySQL Tables."
   12. If you encounter errors, see Section 2.3.7, "Troubleshooting a
       Microsoft Windows MySQL Server Installation."

2.3.9 MySQL Server on Microsoft Windows Postinstallation Procedures

   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 2.3.3.1, "Using the MySQL
   Installation Wizard for Microsoft Windows.") Otherwise, use the
   password-assignment procedure given in Section 2.12.2, "Securing
   the Initial MySQL Accounts."

   Before setting up 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 2.3.6.4, "Starting MySQL Server on Microsoft
   Windows for the First Time"), and then issue the following
   commands to verify that you can retrieve information from the
   server. You may need to specify directory different from
   C:\mysql\bin on the command line. If you used the Windows
   Installation Wizard, the default directory is C:\Program
   Files\MySQL\MySQL Server 5.1, and the mysql and mysqlshow client
   programs are in C:\Program Files\MySQL\MySQL Server 5.1\bin. See
   Section 2.3.3.1, "Using the MySQL Installation Wizard for
   Microsoft Windows," for more information.

   Use mysqlshow to see what databases exist:
C:\> C:\mysql\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. In most cases, the
   test database will also be installed automatically.

   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:\> C:\mysql\bin\mysqlshow -u root -p
Enter 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:\> C:\mysql\bin\mysqlshow mysql
Database: mysql
+---------------------------+
|          Tables           |
+---------------------------+
| columns_priv              |
| db                        |
| event                     |
| func                      |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| 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:\> C:\mysql\bin\mysql -e "SELECT Host,Db,User FROM mysql.db"
+------+--------+------+
| host | db     | user |
+------+--------+------+
| %    | test   |      |
| %    | test_% |      |
+------+--------+------+

   For more information about mysqlshow and mysql, see Section 4.5.6,
   "mysqlshow --- Display Database, Table, and Column Information,"
   and Section 4.5.1, "mysql --- The MySQL Command-Line Tool."

   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 2.3.6.7, "Starting MySQL Server as a Microsoft
   Windows Service."
