This section does not apply to MySQL Enterprise Server users.
This section lists some of the steps you should take when upgrading MySQL on Windows.
Review Section 2.4.16, “Upgrading MySQL”, for additional information on upgrading MySQL that is not specific to Windows.
You should always back up your current MySQL installation before performing an upgrade. See Section 5.9.1, “Database Backups”.
Download the latest Windows distribution of MySQL from http://dev.mysql.com/downloads/.
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 the following command to stop it:
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 supply the password when
prompted.
When upgrading to MySQL 5.0 from a version previous to 4.1.5, or when upgrading from a version of MySQL installed from a Zip archive to a version of MySQL installed with the MySQL Installation Wizard, you must manually remove the previous installation and MySQL service (if the server is installed as a service).
To remove the MySQL service, use the following command:
C:\> C:\mysql\bin\mysqld --remove
If you do not remove the existing service, the MySQL Installation Wizard may fail to properly install the new MySQL service.
If you are using the MySQL Installation Wizard, start the wizard as described in Section 2.4.8.3, “Using the MySQL Installation Wizard”.
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.
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.4.8.11, “Starting MySQL as a Windows Service”.)
Restart the server. For example, use NET START MySQL if you run MySQL as a service, or invoke mysqld directly otherwise.
If you encounter errors, see Section 2.4.8.13, “Troubleshooting a MySQL Installation Under Windows”.

User Comments
If you do forget to remove the service. Especially when uninstalling and installing a fresh copy.
Goto regedit in:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Service
Find mysql and delete. Reboot to take effect in services manager.
"sc delete mysql" will delete the service and update the list without having to reboot the machine.
Note that the "sc" command was introduced in Windows XP.
The 'sc delete mysql' is also available in the Microsoft Windows 2000 Professional Resource Kit. (Not only XP)
This may seem obvious, but:
Step 6 says to overwrite your existing MySQL install, but if
you do, you'll overwrite any security changes you may have made to the mysql database (most probably the user and db tables). So only overwrite them if you know you haven't made any changes to that database.
You do not need to uninstall the service
Simply change the my.ini file in C:\windows\my.ini
Then copy the new mysqld-nt.exe to the oldversion/bin/ folder.
Change the line basedir=C:/apache/mysql to
basedir=C:/apache/newversion
for example or whatever you called the new folder.
Leave the data folder path the same if you want
datadir=C:/apache/mysql/data or
datadir=C:/apache/newversion/data if you want a new mysql without any data in it.
That way if the new version makes new issues for you (errors) just change the my.ini path back to the old version's folder.
In simple terms there is no need to change your data folder and so you keep all the info and users data safe.
Updating the mysql_fix_privilege_tables is still the same problem for us though.
If during windows installation MySQL server refuses
1 row in set (0.00 sec)to be connected to try to do the following:
1. Check that the MySQL server is running
->ControlPanel->Administrative Tools->Component Services->Services(local)
2. Use the client command without password:
"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysql" -u root
By default MySQL installation creates the following privileges:
mysql> select user, host, password from user;
Once you got in you can change the privileges and create secure
installation.
Add your own comment.