如何安装无人值守的MySQL自定义设置?

时间:2018-07-11 20:29:45

标签: mysql installation windows-installer installer silent

这是用于静默安装MySQL的命令行,

/quiet

但是如何运行无人值守的MySQL安装程序?

1 个答案:

答案 0 :(得分:1)

更新:此处分为几个阶段。我将全部保留。建议的技术解决方案/解决方法已移至顶部。

实例配置

实例的实际配置 似乎已从MySQLInstanceConfig.exe移至安装程序本身:Where is the MySql 5.6 equivalent of `MySQLInstanceConfig.exe` to edit configuration files?请尝试使用{{3} }(注意:链接到8.0版,而不是5.7版)应用程序,示例:

MySQLInstallerConsole.exe

  

静默安装 :该控制台应用程序似乎可以在以下环境中静默运行安装:   多种口味,使以下步骤成为可选步骤。

MSI软件包

我对我认为的mysql-5.7.22-winx64.msi文件进行了测试(主要文件中嵌入了许多MSI文件,请参见下文)。 我的最佳建议 与供应商联系,以确定他们是否已积极尝试防止无提示安装。他们可能拥有,然后随着时间的流逝,您可能正在与风车作战。如果您问我,他们应该改进此设计-尽管这不是我见过的最糟糕的情况。

通过启动原始的大型MSI并启用MySQLInstallerConsole.exe(请参见该链接中的部分:“ 对于计算机上的所有设置都是全局的”),然后运行其内置功能,自定义GUI并开始实际安装,然后检查"CommandLine"文件夹中生成的实际日志文件中的temp条目-看起来它设置了以下属性: REBOOT ADDLOCAL INSTALLDIR INSTALLLOCATION {{1 }} ARPINSTALLLOCATION INSTALL_ROOT 。下面的实际日志条目:

DATADIR
换句话说,这些是由通常运行安装过程的自定义安装GUI设置的属性。 您应该能够对需要安装的所有嵌入式MSI文件使用此过程 。然后,您只需从大型MSI中提取所需的这些MSI文件,并使用找到的命令行以某种方式依次运行它们。您也可以根据需要应用转换。

要陈述明显的内容 :在与先决条件和公司用例作斗争时,这可能需要一些时间才能正确。我会去 试点 。找到一个有活力的团队,并迅速将您的东西放到他们的测试PC上,并告诉他们尽快进行测试:-)。提到它,您已经有机会了。如果没有一些不幸的,耗时的迭代,我将永远无法解决这些问题。


过程摘要

  1. 启用automatic logging(MSI专家Stefan Kruger的信息)
  2. 通过具有适当设置选项的自定义安装程序GUI安装
  3. ******* Product: C:\ProgramData\MySQL\MySQL Installer for Windows\Product Cache\mysql-5.7.22-winx64.msi ******* Action: ******* CommandLine: REBOOT=ReallySuppress ADDLOCAL=RegKeys,ALWAYSINSTALL,Readme,MISC,Server_Scripts,ProgramMenu,MYSQLSERVER,Client,DEVEL,SharedLibraries,UserEditableDataFiles INSTALLDIR="C:\Program Files\MySQL\MySQL Server 5.7" INSTALLLOCATION="C:\Program Files\MySQL\MySQL Server 5.7" ARPINSTALLLOCATION="C:\Program Files\MySQL\MySQL Server 5.7" INSTALL_ROOT="C:\Program Files\MySQL\MySQL Server 5.7" DATADIR="C:\ProgramData\MySQL\MySQL Server 5.7" ALLUSERS=1 的日志文件中查找要设置的属性。
    • 日志文件将具有随机名称,按数据排序并打开最近更改的日志文件。
  4. 从包装器设置中获取嵌入式MSI文件:
    • 抓住automatic logging(列表底部)
    • 从包装器设置(LaunchCondition表)中删除启动条件
    • 像这样提取内容:%temp% folder
    • 通过上述命令可以启动MSI tool for viewing / editing MSI files-本质上是精美的文件摘录,但是应用程序打包程序每天都使用MSI的一个很好的功能
  5. 根据发现的属性尝试使用msiexec.exe /a mysql-installer-community-5.7.22.1.msi TARGETDIR=C:\YourFolder命令行在测试计算机上进行安装

示例

msiexec.exe

以及一些参数信息:

msiexec.exe /i mysql-5.7.22-winx64.msi REBOOT=ReallySuppress ADDLOCAL="RegKeys,ALWAYSINSTALL,Readme,MISC,Server_Scripts,ProgramMenu,MYSQLSERVER,Client,DEVEL,SharedLibraries,UserEditableDataFiles" INSTALLDIR="C:\Program Files\MySQL\MySQL Server 5.7" INSTALLLOCATION="C:\Program Files\MySQL\MySQL Server 5.7" ARPINSTALLLOCATION="C:\Program Files\MySQL\MySQL Server 5.7" INSTALL_ROOT="C:\Program Files\MySQL\MySQL Server 5.7" DATADIR="C:\ProgramData\MySQL\MySQL Server 5.7" ALLUSERS=1 /QN

不寻常的MSI设计 :我知道这是不寻常的MSI,但是通常您会致电供应商或搜索其网站以获取诸如此类的部署文档,然后按照我在下面概述了该过程(也请在此处添加链接:administrative installation),使用 ADDLOCAL="..." - list of features to install locally REBOOT=ReallySuppress - prevent spontaneous reboot ALLUSERS=1 - install per machine /QN - crucial addition to the command line found in the log file. this makes the install run in silent mode PUBLIC properties 修改安装。

但是,在快速检查此MSI之前,我写了以下部分。快速浏览后发现无数的 transforms 。一点也不好。 MSI也没有GUI,并且其启动安装会阻止其管理安装(文件提取)。实际上,这是非常糟糕的设计。您可以使用Orca或等效工具删除启动条件,然后进行以下操作:

embedded MSI packages

看来,这是一个包装MSI,它将启动专有的GUI(基于.NET?),然后可以使用该GUI安装MySQL工具套件所需的点点滴滴。如果此启动器是使用 msiexec.exe /a mysql-installer-community-5.7.22.1.msi TARGETDIR=C:\YourFolder setup.exe 构建的 WiX Burn ,那就更好了。 , Installshield Advanced Installer

推荐步骤 :诚实的答案是我不知道。如果可能的话,我会an equivalent tool,一般来说call the vendorcheck their user forums。我希望大多数嵌入式MSI文件都可以以静默方式安装。

现实的方法可能是使用上述管理安装技巧来提取所有MSI文件,尽管有一定的原因它们会阻止管理安装-我不知道 他们很可能不希望通过选项支持静默安装? (给他们打电话?)。然后,获取所需的单个MSI文件,并查看它们是否将使用How to make better use of MSI files中所述的方法以PUBLIC属性和/或转换的方式以静默方式安装。这些设置中有很多功能,您可以在命令行中使用do some further googling来定义要安装哪些功能,而不要安装哪些功能。请参阅下面的链接的答案。但是,正如我在下面指出的那样; here(建议略读)。

当心必备的运行时要求。可能有几种,例如.NET框架和各种运行时。我看到其中一些是由自定义安装程序GUI安装的。


我下面的原始通用答案

MSI :该安装程序看起来像Windows Installer格式,即MSI文件。 MSI文件在静默安装和自定义参数的配置方面非常灵活,这让您很幸运。但是,这取决于设计良好的包装,而情况并非总是如此。

公共属性和转换 :关于定制MSI安装的主题,我这里有一个古老的答案: feature control is a very complex topic (只是在第一部分中,结尾部分与其他主题无关。正如您将在链接的答案中看到的那样,您实际上是在命令行上设置了可用的PUBLIC属性,或者创建了一个转换以定制安装程序中所需的任何内容。后者是大多数公司所做的部署。

配置 :可以在命令行上设置哪些属性(具有任何作用),在不同的设置之间有所不同。安装程序创建者必须具有这些属性-并在安装程序中围绕它们创建了功能-才能对其进行配置。典型的参数化值包括ADDLOCALlicense keysURLs to license servers等。对于更实质性的更改(例如更改快捷方式或类似内容),人们通常求助于使用变换。您还可以使用user and company names and emails来定义要安装的功能(如果为ADDLOCAL property指定值,则不会安装所有其他功能)。功能控件是MSI的内置属性,您可以从命令行或通过转换来详细控制功能选择。但是,How to make better use of MSI files(建议略读)。

具体示例 :如上所述,您需要根据所涉及的设置来设置属性和值。这意味着您必须点击相关设置的文档,以确定什么是“可设置的”。


某些链接