繁体   English   中英

如何使用自定义设置在无人值守的情况下安装 MySQL?

[英]How to install MySQL unattended with custom settings?

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

/quiet

但是如何在安装程序中使用自定义设置在无人值守的情况下运行MySQL安装程序?

更新这里有一个更新的和有些相关的答案


更新:这里有几个阶段的答案。 我会把它们都留在里面。建议的技术解决方案/解决方法移到了顶部。

实例配置

实例的实际配置似乎已从MySQLInstanceConfig.exe移至安装程序本身: MySql 5.6 的 `MySQLInstanceConfig.exe` 等价物在哪里编辑配置文件? 请尝试MySQLInstallerConsole.exe (注意:链接到版本 8.0,而不是 5.7)应用程序,示例:

MySQLInstallerConsole.exe

静默安装:似乎这个控制台应用程序可以以各种方式静默运行安装,使下面的过程成为可选的。

微星包

我对我认为是mysql-5.7.22-winx64.msi文件进行了测试运行(主文件中嵌入了许多 MSI 文件,请参见下文)。 我最好的建议是:与供应商通电话,确定他们是否积极尝试阻止静默安装 他们只是可能有,然后你可能会随着时间的推移与风车作战。 如果你问我,他们应该改进这个设计——尽管这不是我见过的最糟糕的。

通过启动原始的大型 MSI 并启用 自动日志记录(请参阅该链接中的部分:“全局用于机器上的所有设置”),然后通过其内置的自定义 GUI 运行并开始实际安装,然后检查"CommandLine"temp文件夹中生成的实际日志文件中的“命令行"CommandLine"条目 - 看起来它设置了以下属性: REBOOTADDLOCALINSTALLDIRINSTALLLOCATIONARPINSTALLLOCATIONINSTALL_ROOTDATADIR 下面的实际日志条目:

 ******* 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 

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

很明显:这可能需要一些时间才能让您在与先决条件和公司用例作斗争时做好准备。 我会去驾驶 找到一个充满活力的团队,快速将你的东西放到他们的测试 PC 上,并告诉他们尽快给它一个垃圾:-)。 您可能已经这样做了,只是提一下。 如果没有一些不幸的、耗时的迭代,我永远无法把这些事情做好。


程序摘要

  1. 启用 自动日志记录(MSI 专家 Stefan Kruger 的信息)
  2. 通过自定义 setup-GUI 安装,并根据需要设置选项
  3. %temp% folder的日志文件中查找要设置的属性。
  • 日志文件将具有随机名称,按数据排序并打开最近更改的日志文件。
  1. 从包装设置中获取嵌入式 MSI 文件:
  • 获取用于查看/编辑 MSI 文件的 MSI 工具(向下列表)
  • 从包装器设置中删除启动条件(LaunchCondition 表)
  • 像这样提取内容: msiexec.exe /a mysql-installer-community-5.7.22.1.msi TARGETDIR=C:\YourFolder
  • 上面的命令启动管理安装- 本质上是一个美化的文件提取,但应用程序打包程序每天使用的一个非常好的 MSI 功能
  1. 根据您找到的属性,尝试使用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

还有一些参数信息:

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

不寻常的 MSI 设计:我知道这是一个不寻常的 MSI,但通常你打电话给供应商或搜索他们的网站以获取诸如此类的部署文档并按照我在下面概述的过程(让我在这里添加链接: How to make better使用 MSI 文件)使用PUBLIC propertiestransforms来修改安装。

但是,在快速检查此 MSI 之前,我编写了以下部分。 快速浏览一下就发现了无数的embedded MSI packages 一点都不好。 MSI 也没有 GUI,并且它的管理安装(文件提取)被启动条件阻止。 事实上相当糟糕的设计。 您可以通过使用 Orca 或等效工具删除启动条件并执行以下操作来进行管理安装:

msiexec.exe /a mysql-installer-community-5.7.22.1.msi TARGETDIR=C:\YourFolder

似乎这个想法是,这是一个包装 MSI,它将启动一个专有的 GUI(基于 .NET?),然后您可以使用它来安装您需要的 MySQL 工具套件的点点滴滴。 如果这个启动器是一个用WiX BurnInstallshieldAdvanced Installeran equivalent tool构建的setup.exe ,那就更好了。

推荐程序:诚实的答案是我不知道。 如果可能的话,我会call the vendorcheck their user forumsdo some further googling 我希望大多数嵌入式 MSI 文件应该可以在静默模式下安装。

实际的方法可能是使用上述管理安装技巧提取所有 MSI 文件,尽管它们阻止管理安装肯定是有原因的——我不知道 他们很可能不想通过选项支持静默安装? (给他们打电话?)。 然后,您获取所需的单个 MSI 文件,并使用此处描述的方法以及 PUBLIC 属性和/或转换查看它们是否会以静默模式安装。 这些设置中有许多功能,您可以在命令行中使用ADDLOCAL来定义要安装和不安装的功能。 请参阅下面的链接答案。 但是,正如我在下面所说的那样; 特征控制是一个非常复杂的话题(推荐略读)。

请注意先决条件运行时要求。 可能有几个,例如 .NET 框架和各种运行时。 我看到其中几个是由自定义设置 GUI 安装的。


我的原始通用答案如下

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

公共属性和转换:关于自定义 MSI 安装的主题,我在这里有一个古老的答案: 如何更好地利用 MSI 文件(只是第一部分,结尾与其他主题有点偏离)。 正如您将在链接的答案中看到的那样,您实际上是在命令行中设置了可用的 PUBLIC 属性,或者创建一个转换来自定义安装程序中您想要的任何内容。 后者是大多数公司为部署所做的。

配置:可以在命令行设置哪些属性(有任何影响),因不同的设置而异。 设置创建者必须创建这些属性 - 并在设置中围绕它们构建功能 - 才能使它们可配置。 典型的参数化值将包括license keysURLs to license servers以及user and company names and emails等。 对于更实质性的更改(例如更改快捷方式或类似内容),人们通常会使用变换。 您还可以使用ADDLOCAL property来定义要安装的功能(如果您为ADDLOCAL指定值,则不会安装所有其他功能)。 功能控制是 MSI 的内置属性,您可以从命令行或通过转换详细控制功能选择。 然而, 特征控制是一个非常复杂的话题(推荐略读)。

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


一些链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM