Bug #73286 Silent install of mysql-installer-community-5.6.19.0 only installs the installer
Submitted: 14 Jul 2014 2:48 Modified: 14 Jul 2014 11:35
Reporter: Nicholas Ramirez Email Updates:
Status: Open Impact on me:
None 
Category:MySQL Server: Installing Severity:S4 (Feature request)
Version:5.6.19.0 OS:Windows
Assigned to: CPU Architecture:Any
Tags: bootstrapper, msi, quiet install, unattended install

[14 Jul 2014 2:48] Nicholas Ramirez
Description:
If I attempt to install mysql-installer-community-5.6.19.0 from the command line (such as what would happen when I would like to do an unattended install or to bootstrap MySQL as a pre-req in another product's installer), then the only thing that is installed is the MySQL Installer itself and not MySQL.

Command line:

msiexec /i mysql-installer-community-5.6.19.0 /q

The /i flag instructs msiexec to install the MSI package. The /q flag instructs it to be in silent, no-UI mode.

This will install the following files to Program Files (x86):

MySQL\
  MySQL Installer\
    Interop.Shell32.dll
    MySql.Data.dll
    MySQLInstaller.exe
    MySQLInstaller.Console.exe
    StandardPlugins.dll
    WexInstaller.Core.dll
    WexInstallerUpdater.exe

This shows that MySQL was not installed. Rather, it's internal bootstrapper was installed.

Background:
It is not considered good practice to use an MSI package as a bootstrapper, which seems to be what MySQL has done. Instead, a .exe bootstrapper should be used, such as one that would be created by using the WiX Burn engine:
 
http://wixtoolset.org/documentation/manual/v3/bundle/.

There is currently no way, other than first installing the MySQL Installer silently and then taking the MySQLInstaller.exe to include it in a different bootstrapper, to bootstrap MySQL within a different product's installer (or to install MySQL in quiet mode -- aka no UI). The goal I am after is to bootstrap MySQL as part of another install but to not display the MySQL Installer UI.

How to repeat:
Install the MSI from the command line on Windows using the following command:

msiexec /i mysql-installer-community-5.6.19.0 /q

Suggested fix:
Use a bootstrapper to bootstrap the install process, rather than an MSI. Or, include public properties on the MSI for turning on features, setting properties, etc. so that a full installation of MySQL can be performed as a silent install (no UI).
[14 Jul 2014 3:16] Nicholas Ramirez
Changing this to a bug instead of feature request because the docs at http://dev.mysql.com/doc/refman/5.5/en/windows-installer-msi-quiet.html say that a quiet install should already work.
[14 Jul 2014 9:20] Peter Laursen
I thin teh page at http://dev.mysql.com/doc/refman/5.5/en/windows-installer-msi-quiet.html does not refer the "MySQL Installer" (for multiple products) but the .msi installer for the server alone. Such ('server alone') .msi is available for 5.1 and 5.5 - but not 5.6 and 5.7 - servers.
[14 Jul 2014 9:24] Peter Laursen
Check this page too:
http://dev.mysql.com/doc/refman/5.6/en/windows-installer-msi-quiet.html
"This page has moved or been replaced .."

Your link is to MySQL 5.5 documentation.  I don't find any similar statement for MySQL 5.6.

-- Peter
-- not a MySQL/Oracle person
[14 Jul 2014 11:35] Nicholas Ramirez
You're right, changing it back to a feature request to have the installer have the ability to do a quiet, unattended install.
[13 Feb 2015 0:19] MySQL Verification Team
http://bugs.mysql.com/bug.php?id=75878 marked as duplicate of this one.
[18 Feb 2015 14:37] Michael B
If you only wish to install the server you could use this workaround:

1. Download 7Zip or any other program that is able to open MSI packages
2. Download the full msi (boostrap) installer. 
3. Rightclick on the (bootstrap) installer -> open with 7Zip
4. Extract the file server_5623_winx64 for x64 and server_5623_win32 for x86.
5. Rename the file to xxxx.msi (this is the install file as in previous versions). 
7. install with the command msiexec /q /i server_5623_winx64.msi

However afterwards we always configured our servers with the MysqlInstanceConfig.exe in older versions of Mysql. It would generate an ini and create a windows service. This does not seem to be present anymore so from there on out it seems we have to: 

- use the noinstall procedure for installing the service, manually create a .ini, etc (https://dev.mysql.com/doc/refman/5.6/en/windows-install-archive.html). 

or 

-use the mysql installer console to configure the service. (http://dev.mysql.com/doc/refman/5.6/en/MySQLInstallerConsole.html). The console also seems to allow mysql to be installed silent this way but will probably require an internet connection. we are currently exploring this option. 

Hope this helps.