Installing MySQL 5.1.
Operating system used
Windows Vista Home Premium SP 1
- If you use Windows Vista, disable the User Account Control feature.
- Check if port 3306 is not used by another application. To check if a port is already in use open a DOS box and type command:
netstat -a -b
Note: If port 3306 is used, you must solve this problem first.
- Check if servicename MySQL51 does not exist.
Select: Start | Control Panel, double click "Administrative Tools" and double click "Services".
Note: If servicename MySQL51 exist, you must solve this problem first.
- Download mysql-essential-5.1.31-win32.msi (The Essentials Package)
- Double click mysql-essential-5.1.31-win32.msi and press Next button.
- Select setup type "Custom" and press Next button.
- Change the MySQL destination folder, e.g.: C:\Tools\mysql and press Next button.
- The wizard is ready to begin installation, press Install button.
- When the wizard is finished, press the Next button twice.
- Check the box "Configure the MySQL Server now" and press the Finish button.
- The Configuration Wizard screen is displayed, press the Next button.
- Select "Detailed Configuration" and press the Next button.
- Select "Developer Machine" and press the Next button.
- Select "Mutifunctional Database" and press the Next button.
- Select the drive and directory where the InnoDB tablespace should be placed and press the Next button.
- Select the number of concurrent connections and press the Next button.
- Set the networking options and press the Next button.
- Select option "Best Support For Multilingualism", this option makes UTF8 the default character set.
Press the Next button.
- Enable both checkboxes, change the Service Name: "MySQL51" and press the Next button.
- Set the root password (e.g.: mysecret) for your MySQL server and press the Next button.
- Press the Execute button to start the configuration.
- If your firewall blocks port 3306, you will see the message below.
To solve this problem, do the following:
- Please check your firewall settings (ZoneAlarm, McAfee, etc.) and unblock port 3306.
- Select Start | All Programs | MySQL | MySQL Server 5.1 | MySQL Server Instance Config Wizard
- After the "MySQL Server Instance Config Wizard" welcome screen is displayed, press the Next button.
- Select "Remove Instance" and press the Next button.
- Press Execute button.
- Press Finish button.
- Again, select Start | All Programs | MySQL | MySQL Server 5.1 | MySQL Server Instance Config Wizard
- Again follow step 11 till 19.
- In step 20, enable "Modify Security Settings"
Current root password: is empty
New root password: mysecret
and press Next button.
- Press Execute button.
- Press Finish button.
- To check if the MySQL server is running, type:
C:\Tools\mysql\bin>mysql -uroot -pmysecret test
You should see:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.31-community MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
- To display more information, type:
You should see:
- The my.ini file used is located in the C:\Tools\mysql directory. This file looks like:
# MySQL Server Instance Configuration File
# Generated by the MySQL Server Instance Configuration Wizard
# Installation Instructions
# On Linux you can copy this file to /etc/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options
# (@localstatedir@ for this installation) or to
# ~/.my.cnf to set user-specific options.
# On Windows you should keep this file in the installation directory
# of your server (e.g. C:\Program Files\MySQL\MySQL Server X.Y). To
# make sure the server reads the config file use the startup option
# To run run the server from the command line, execute this in a
# command line shell, e.g.
# mysqld --defaults-file="C:\Program Files\MySQL\MySQL Server X.Y\my.ini"
# To install the server as a Windows service manually, execute this in a
# command line shell, e.g.
# mysqld --install MySQLXY --defaults-file="C:\Program Files\MySQL\MySQL Server X.Y\my.ini"
# And then execute this in a command line shell to start the server, e.g.
# net start MySQLXY
# Guildlines for editing this file
# In this file, you can use all long options that the program supports.
# If you want to know the options a program supports, start the program
# with the "--help" option.
# More detailed information about the individual options can also be
# found in the manual.
# CLIENT SECTION
# The following options will be read by MySQL client applications.
# Note that only client applications shipped by MySQL are guaranteed
# to read this section. If you want your own MySQL client program to
# honor these values, you need to specify it as an option during the
# MySQL client library initialization.
# SERVER SECTION
# The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this
# The TCP/IP Port the MySQL Server will listen on
#Path to installation directory. All paths are usually resolved relative to this.
#Path to the database root
datadir="C:/ProgramData/MySQL/MySQL Server 5.1/Data/"
# The default character set that will be used when a new schema or table is
# created and no character set is defined
# The default storage engine that will be used when create new tables when
# Set the SQL mode to strict
# The maximum amount of concurrent sessions the MySQL server will
# allow. One of these connections will be reserved for a user with
# SUPER privileges to allow the administrator to login even if the
# connection limit has been reached.
# Query cache is used to cache SELECT results and later return them
# without actual executing the same query once again. Having the query
# cache enabled may result in significant speed improvements, if your
# have a lot of identical queries and rarely changing tables. See the
# "Qcache_lowmem_prunes" status variable to check if the current value
# is high enough for your load.
# Note: In case your tables change very often or if your queries are
# textually different every time, the query cache may result in a
# slowdown instead of a performance improvement.
# The number of open tables for all threads. Increasing this value
# increases the number of file descriptors that mysqld requires.
# Therefore you have to make sure to set the amount of open files
# allowed to at least 4096 in the variable "open-files-limit" in
# section [mysqld_safe]
# Maximum size for internal (in-memory) temporary tables. If a table
# grows larger than this value, it is automatically converted to disk
# based table This limitation is for a single table. There can be many
# of them.
# How many threads we should keep in a cache for reuse. When a client
# disconnects, the client's threads are put in the cache if there aren't
# more than thread_cache_size threads from before. This greatly reduces
# the amount of thread creations needed if you have a lot of new
# connections. (Normally this doesn't give a notable performance
# improvement if you have a good thread implementation.)
#*** MyISAM Specific options
# The maximum size of the temporary file MySQL is allowed to use while
# recreating the index (during REPAIR, ALTER TABLE or LOAD DATA INFILE.
# If the file-size would be bigger than this, the index will be created
# through the key cache (which is slower).
# If the temporary file used for fast index creation would be bigger
# than using the key cache by the amount specified here, then prefer the
# key cache method. This is mainly used to force long character keys in
# large tables to use the slower key cache method to create the index.
# Size of the Key Buffer, used to cache index blocks for MyISAM tables.
# Do not set it larger than 30% of your available memory, as some memory
# is also required by the OS to cache rows. Even if you're not using
# MyISAM tables, you should still set it to 8-64M as it will also be
# used for internal temporary disk tables.
# Size of the buffer used for doing full table scans of MyISAM tables.
# Allocated per thread, if a full scan is needed.
# This buffer is allocated when MySQL needs to rebuild the index in
# REPAIR, OPTIMZE, ALTER table statements as well as in LOAD DATA INFILE
# into an empty table. It is allocated per thread so be careful with
# large settings.
#*** INNODB Specific options ***
# Use this option if you have a MySQL server with InnoDB support enabled
# but you do not plan to use it. This will save memory and disk space
# and speed up some things.
# Additional memory pool that is used by InnoDB to store metadata
# information. If InnoDB requires more memory for this purpose it will
# start to allocate it from the OS. As this is fast enough on most
# recent operating systems, you normally do not need to change this
# value. SHOW INNODB STATUS will display the current amount used.
# If set to 1, InnoDB will flush (fsync) the transaction logs to the
# disk at each commit, which offers full ACID behavior. If you are
# willing to compromise this safety, and you are running small
# transactions, you may set this to 0 or 2 to reduce disk I/O to the
# logs. Value 0 means that the log is only written to the log file and
# the log file flushed to disk approximately once per second. Value 2
# means the log is written to the log file at each commit, but the log
# file is only flushed to disk approximately once per second.
# The size of the buffer InnoDB uses for buffering log data. As soon as
# it is full, InnoDB will have to flush it to disk. As it is flushed
# once per second anyway, it does not make sense to have it very large
# (even with long transactions).
# InnoDB, unlike MyISAM, uses a buffer pool to cache both indexes and
# row data. The bigger you set this the less disk I/O is needed to
# access data in tables. On a dedicated database server you may set this
# parameter up to 80% of the machine physical memory size. Do not set it
# too large, though, because competition of the physical memory may
# cause paging in the operating system. Note that on 32bit systems you
# might be limited to 2-3.5G of user level memory per process, so do not
# set it too high.
# Size of each log file in a log group. You should set the combined size
# of log files to about 25%-100% of your buffer pool size to avoid
# unneeded buffer pool flush activity on log file overwrite. However,
# note that a larger logfile size will increase the time needed for the
# recovery process.
# Number of threads allowed inside the InnoDB kernel. The optimal value
# depends highly on the application, hardware as well as the OS
# scheduler properties. A too high value may lead to thread thrashing.
- According to the C:\tools\mysql\my.ini file:
You can change these settings in this file, for example:
default-character-set=utf8 (in this example, the character set is not changed)
Show information about the MySQL character sets.
If you change the my.ini file, you must restart MySQL server:
- Select: Start | Control Panel | Administrative Tools
- Right click MySQL51 and select Restart
- After the installation, the system environment variable PATH is changed.
Check if the following is added:
PATH = ..;C:\tools\mysql\bin
- If you have installed PHP 5.2.8 and PHP 5.2.8 should work with MySQL 5.1, then you must change file c:\Windows\php.ini.
- Check if you can create a database mobilefishdb, type:
mysql> create database mobilefishdb;
mysql> use mobilefishdb;
- Check if you can create a USER table, type:
create table user (
userid int auto_increment,
username varchar(255) not null,
firstname varchar(255) not null,
lastname varchar(255) not null,
title varchar(255) null,
gender enum('m', 'f') null,
date_of_birth date null,
password varchar(255) not null,
email varchar(255) not null,
phone varchar(255) null,
primary key (userid)
- Check if you can delete the database mobilefishdb, type:
mysql> drop database mobilefishdb;
- The WinMySQLadmin.exe is not installed in the bin directoy. It is no longer supported/distributed.
Use MySQL GUI Tools Bundle for 5.1 instead. It includes the following products which are also supported for MySQL 5.1:
- MySQL Administrator 1.2 Generally Available
- MySQL Query Browser 1.2 Generally Available
- MySQL Migration Toolkit 1.1 Generally Available