Installing MySQL on Windows
Table of contents for Installing WordPress On IIS From the Ground Up
- Installing MySQL on Windows
- Installing FastCGI on IIS6
- Installing PHP on Windows and IIS
- Installing phpMyAdmin on Windows and IIS 6.0
- Preparing to Install WordPress on Windows and IIS
- Installing WordPress (Single-User)
- Troubleshooting on IIS7
I’m installing WordPress on a new server for my company and realized I didn’t have detailed instructions for how I set it up last time. This article is intended to show the exact steps I take to set it up.
MySQL comes in two primary flavors (from the downloads page) - community server and enterprise server. The one we are interested in is community server (also known as the Generally Available (GA) release). The community server page lists links for a variety of platforms as well as for the source.
MySQL is distributed in three forms for Windows:
- Windows Essentials
- Windows MSI Installer
- Without installer (unzip in C:\)
For my purposes I have always chosen the Windows MSI Installer download package. As of this writing, MySQL version 5.1.32 is available for download. I tend to download the latest publically available production version as I assume that has all the latest bug fixes and security fixes as well as support for the latest features required by the software I need to run.
What to Install
The installer offers three choices for installing:
- Typical
- Complete
- Custom

My habit is to select Custom to make sure I know what is being installed. It turns out that Typical is almost always the correct choice. The only thing not installed by selecting that option is the developer components. Everything else should be installed. Here are the components that are installed when selecting the Typical option:
- MySQL Server
- Client Programs - Includes a command-line interface.
- MySQL Instance Manager - Allows you to manage several MySQL server instances.
- Documentation

Configuration Wizard
The Instance Configuration Wizard will run after MySQL has installed (it’s an option at the end of the Setup Wizard). The Instance Configuration Wizard offers two configuration types - Detailed Configuration and Standard Configuration. Standard configuration is only recommend if you already have a MySQL server installed, so select Detailed Configuration.

Type of Server
The next page asks what type of server is being installed, which determines how much memory the MySQL process will use. If all you’re doing is testing it out or developing against it, select Developer Machine. If you’re going to deploy it with other server applications, select Server Machine. If you are going to dedicate a machine to MySQL, specify Dedicated MySQL Server Machine.
For my uses, I typically select Server Machine.

How the Database will be used
The next page asks how the database will be used. Your choice will determine the storage engine to use and the capabilities that will be available. Multifunctional Database is the most flexible, so if you don’t have a specific reason to use transactional or non-transactional databases specifically, just choose Multifunctional Database.

Database File Location
The next page asks for the location of the InnoDB database files to be managed by MySQL. It would be best to specify a disk that has plenty of space and that won’t interfere with the operation of the system. Putting this on a different disk than where the system is installed is a good idea. The UI for this has improved since I first installed MySQL. At that time it defaulted to putting the database files in a folder in the installation directory below Program Files.

Concurrent Connections
The next page asks you to specify a profile describing how many concurrent connections should be allowed to the server. How you set this will be determined by how many visitors you expect to your web site. For limited purpose sites where you know the number of users, you should set this to as close to that number as you can plus one for administration purposes. For a general purpose web site, something on the order of at least 50 would be advisable. On the database serving this web site I currently have it set to 100.

Networking and Strict Mode Options
The next page presents two options.
Enabling TCP/IP Networking should be enabled if you ever want to host your MySQL database on a different machine than your clients. Unless you have a good reason, leave the port number set to the default value of 3306. If you are using MySQL for development purposes on a single machine, there is no reason to add an exception to the firewall.
Enable Strict Mode should always be enabled.

Default Character Set
The next page presents options for setting the default character set for databases. Choose Best Support for Multilingualism unless you know you are going to be using a specific character set.

Windows Options
The next page allows you to specify how the MySQL database server should run. In most cases you’ll the best choice is to check Install As Windows Service. You can also specify a different service name if you are installing multiple instances.
If you want to be able to use the MySQL command line tools, you should also check Include Bin Directory in Windows PATH.

Security Options
The next page allows you to specify security information for accessing the MySQL server instance. Specify a password for the root account. In most cases you will want to use a web-based management tool such as phpMyAdmin or cPanel for managing the MySQL serve instance, so you won’t want to check Enable root access from remote machines. Also, in most cases, you won’t want to check Create An Anonymous Account.

Ready to Execute
You’ve now entered all the information required to install the MySQL server instance. You’ll see the following page requesting that you press the Execute button.

The next article in the series will cover installing FastCGI on IIS6, followed by installing PHP on Windows and IIS.
Resources
- Install MySQL on IIS7 Server 2008 by Dave Lawlor
- Install WordPress on WEMP (Windows, nginx, MySQL and PHP) by Hendry Lee
- Screen cast – How to Install MySQL, PHP using FastCGI, and WordPress on IIS7 on Windows Server 2008 (x86) at NetOMeter



