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

ar5n3qh5  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(479)

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

/quiet

但是如何在安装程序中使用自定义设置无人值守地运行mysql安装程序呢?

fafcakar

fafcakar1#

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

示例配置

示例的实际配置似乎已经从 MySQLInstanceConfig.exe 对于安装程序本身:mysqlinstanceconfig.exe的mysql5.6等价物在哪里编辑配置文件?请试试这个 MySQLInstallerConsole.exe (注意:链接到版本8.0,而不是5.7)应用程序,示例:

静默安装:这个控制台应用程序似乎可以以不同的方式静默运行安装,使得下面的过程是可选的。

msi包

我做了一个我认为是 mysql-5.7.22-winx64.msi 文件(主文件中嵌入了许多msi文件,请参见下文)。我的最佳建议是:与供应商通电话,确定他们是否积极尝试阻止静默安装。他们只是可能有,然后你可能会战斗风车随着时间的推移。如果你问我的话,他们应该改进这个设计——尽管这不是我见过的最糟糕的。
通过启动原始的大型msi并启用自动日志记录(请参阅该链接中的“全局查找计算机上的所有设置”),然后运行其内置的自定义gui并启动实际安装,然后检查 "CommandLine" 在中生成的实际日志文件中的条目 temp 文件夹-看起来它设置了以下属性: REBOOT , ADDLOCAL , INSTALLDIR , INSTALLLOCATION , ARPINSTALLLOCATION , INSTALL_ROOT , DATADIR . 实际日志条目如下:


*******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上,告诉他们尽快把它扔掉:-)。很可能你已经这么做了,只是说说而已。就我个人而言,如果没有一些不幸的、耗时的迭代,就永远无法把这些事情做好。
程序摘要:
启用自动日志(msiMavenstefan kruger的信息)
通过自定义安装gui安装,并根据需要设置选项
在中的日志文件中查找要设置的属性 %temp% folder .
日志文件将具有随机名称,按数据排序并打开最近更改的日志文件。
从 Package 器安装程序获取嵌入的msi文件:
使用msi工具查看/编辑msi文件(列表朝下)
从 Package 器设置中删除启动条件(launchcondition表)
提取如下内容: msiexec.exe /a mysql-installer-community-5.7.22.1.msi TARGETDIR=C:\YourFolder 上面的命令启动了一个管理安装-本质上是一个美化的文件摘录,但msi的一个非常好的特点是应用程序包每天使用
尝试安装在带有 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,但通常你打电话给供应商或搜索他们的网站,以获取这样的部署文档,并按照我在下面概述的过程(让我在这里添加链接:如何更好地利用msi文件)使用 PUBLIC properties 或者 transforms 修改安装。
然而,在我快速检查这个msi之前,我写了下面的部分。匆匆一看,就发现了无数的错误 embedded MSI packages . 一点也不好。msi也没有gui,它的管理安装(文件提取)由于启动条件而被阻止。实际上,这个设计相当糟糕。您可以通过使用orca或等效工具删除启动条件并执行以下操作来进行管理安装:

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

这个想法似乎是一个 Package msi,它将启动一个专有的gui(.net-based?),然后您可以使用它来安装mysql工具套件所需的部分。如果这个发射器是一个 setup.exe 用…建造 WiX Burn , Installshield , Advanced Installer 或者 an equivalent tool .
推荐程序:诚实的回答是我不知道。我会的 call the vendor 如果可能的话, check their user forums 以及 do some further googling 一般来说。我希望大多数嵌入的msi文件都可以在静默模式下安装。
现实世界中的方法可能是使用上述管理安装技巧提取所有msi文件,尽管它们阻止管理安装肯定有原因——我不知道这一点。很可能他们不想支持带选项的静默安装(给他们打个电话。然后获取所需的单个msi文件,并查看它们是否将以静默模式安装,使用这里描述的方法以及公共属性和/或转换。这些设置中有许多功能,您可以使用 ADDLOCAL 在命令行中定义要安装和不安装的。请参阅下面的链接答案。然而,正如我在下面所说的那样;特性控制是一个非常复杂的主题(推荐skim)。
当心先决条件的运行时需求。可能有几种,例如.net框架和各种运行时。我看到其中一些是由自定义安装gui安装的。
我最初的一般答案如下:
msi:看起来这个安装程序是windows安装程序格式的,换句话说就是一个msi文件。在msi文件对于静默安装和自定义参数的配置非常灵活的意义上,您是幸运的。然而,这取决于软件包是否设计良好,但情况并非总是如此。
公共属性和转换:关于自定义msi安装的主题,我有一个古老的答案:如何更好地使用msi文件(只是第一部分,结尾与其他主题有点脱节)。正如您将在链接的答案中看到的,您基本上是在命令行设置可用的公共属性,或者创建一个转换来定制安装程序中所需的任何内容。后者是大多数公司在部署时所做的。
配置:在命令行中可以设置哪些属性(具有任何效果),在不同的设置中会有所不同。安装程序创建者必须使这些属性(以及在安装程序中围绕这些属性构建的功能)可配置。典型的参数化值包括 license keys , URLs to license servers 以及 user and company names and emails 类似的。对于更实质性的更改(例如更改快捷方式或类似的更改),人们通常使用转换。你也可以使用 ADDLOCAL property 定义要安装的功能(如果为指定值,则不会安装所有其他功能) ADDLOCAL ). 功能控制是msi的内置属性,您可以从命令行或通过转换详细控制功能选择。但是,特性控制是一个非常复杂的主题(推荐skim)。
具体示例:如上所述,您需要为所讨论的设置设置适当的属性和值。这意味着您必须点击相关设置的文档来确定什么是“可设置的”或“不可设置的”。
一些链接:
https://downloads.mysql.com/docs/refman-5.7-en.pdf
https://dev.mysql.com/doc/mysql-installation-excerpt/5.5/en/windows-using-installer.html

相关问题