Description:
The Windows .msi installer does not properly detect / handle 'sideways' changes in a MySQL installation.
As an example, installing mysql-5.1.31-win32.msi, removing the instance, then installing mysql-advanced-5.1.31-win32.msi.
Another example, installing mysql-5.1.31-win32.msi, then changing to mysql-advanced-5.1.31-win32.msi.
Symptoms:
Example 1: If you ensure that you set the root password for the first installation, the following will happen on installing the second version of the server:
The previous version's password will still be active (these files are retained through the 'Remove' process on Windows). The configuration for the second installation will not prompt the user for the previous (still active) password however.
If a user tries to set a password for the second installation, the configure will fail on the 'Updating security settings' portion of the final part of the process.
If a user should skip the security settings, the configure will succeed, but the user will be unable to log in to the server unless they use the previous (still active) password. If they enter a NULL password (from not setting it on their install), the login will fail.
Example 2:
If you try to install a new version 'over' an existing version of the server (same release), the installation of the second version will not detect the previous version (as happens when upgrading releases such as 5.1.1 -> 5.1.2).
This install will proceed as a completely clean install, but when the install is complete (just before starting the configuration portion of the install), the user will be present with a system notification telling them that they must restart their system for the changes to the server to take effect.
While example 2 is arguably a bit careless, I still believe that if we are going to possibly be overwriting another installation (due to both versions having the same default directory locations), it might be nice to detect and prevent these 'accidents'
How to repeat:
Run through the examples and look for the symptoms I have described using two different versions of the server.
I ran into this with mysql-5.1.31-win32.msi and mysql-advanced-5.1.31-win32.msi
Suggested fix:
Detect these sideways changes and alert the user when they are going to be interacting with an existing server installation.