【问题标题】:Installing a full MySQL install silently using NSIS使用 NSIS 静默安装完整的 MySQL 安装
【发布时间】:2016-10-10 18:13:34
【问题描述】:

我有一个基本的 NSIS 脚本设置,如下所示:

!include MUI2.nsh
!include WordFunc.nsh
!insertmacro VersionCompare
!include LogicLib.nsh
!include InstallOptions.nsh
!include nsDialogs.nsh

Name "sqltest"
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_RIGHT

OutFile "sqltest.exe"
InstallDir "$PROGRAMFILES\sqltest"
RequestExecutionLevel admin

XPStyle on

!define MUI_WELCOMEPAGE_TEXT "The MySQL Test Install"
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
;!insertmacro MUI_UNPAGE_CONFIRM
;!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"

Section "install"
    
    SetOutPath $INSTDIR
    File /r "V:\Installers\MySQL\Release\*.*"
    ExecWait '"$SYSDIR\msiExec" /i "$INSTDIR\mysql.msi" /passive'
    
    
SectionEnd

但是,这似乎只是安装另一个安装程序:

如果我手动运行 .msi 文件,我会选择“完整”,该过程实际上会完整安装 MySQL,并运行服务等。

如何使用 NSIS 静默完成这种安装?

更新:

我尝试了很多不同的命令,发现我没有安装带有参数的完整 MySQL。我设法完全安装了 MySQL,但这并没有安装服务和其他关键功能(http://dev.mysql.com/doc/relnotes/mysql-installer/en/mysql-installer-news-1-4-12.html 的顶部)

我尝试了上述链接的第二部分,但没有成功。它所做的只是安装一个带有上图所示选项的文件夹。

我尝试使用命令安装程序,正如下面的海报所暗示的那样。但是,这给了我一个 Oracle 登录提示!我需要在没有用户交互的情况下安装它。

有什么想法吗?

【问题讨论】:

  • 这与NSIS无关,请去掉NSIS标签。
  • MySQL 的.msi 似乎不止一个,你下载的是哪个?社区版?
  • 是的,社区版

标签: mysql installation windows-installer silent-installer


【解决方案1】:

可能可以通过执行 MySQLInstallerConsole 来继续安装,如 here 所记录的那样,但是让 .msi 来执行安装当然要好得多,为此你需要找出正确的参数来传递到 msiexec。

这些参数只有 .msi 的作者知道,我很难在 MySQL 网站上找到它的文档。我发现任何有用信息的唯一地方是安装程序发行说明!

我发现了一些对installdirdatadir 参数here 的引用。我不确定这些是否是 MSI 参数,或者它们是否包含在 CONSOLEARGS 字符串中。

使用/passive 开关时,您似乎可以传递一个名为CONSOLEARGS 的字符串参数,并且它支持许多选项,如here 所述:

msiexec /i mysql-installer-community-5.6.27.1.msi /passive CONSOLEARGS="install -type=Full -silent"

msiexec /i mysql-installer-community-5.6.27.1.msi /passive CONSOLEARGS="install server;5.6.27;x64:*:type=config;openfirewall=true;generallog=true;binlog=true;serverid=1;enable_tcpip=true;port=3306;rootpasswd=secret:type=user;username=root;password=secret;role=DBManager -silent"

【讨论】:

  • 感谢@Anders 的详细回答,我会检查参数并进行更多试验和错误,看看我能走多远!
  • 我尝试了很多东西。我的反馈在我的 OP 中。有什么想法吗?
  • 我从来没有安装过 MySQL,所以我不知道。你可以尝试在他们的论坛上提问。这个话题好像和你的问题有关:forums.mysql.com/read.php?169,647447,647447#msg-647447
  • 我已经成功安装了它。论点存在问题,但您的回答至少帮助我安装了它
  • 第二个命令不起作用。它不允许选择特定的组件。它也不是沉默的
【解决方案2】:

在安装程序脚本中将文件“mysql.msi”复制到安装目录。首先,在与下面的安装程序脚本相同的目录中创建 mysql.msi 文件,然后编译安装程序脚本。如果安装程序脚本在桌面上,请在运行已编译的安装程序之前删除 mysql.msi 文件。运行简单安装程序会将 mysql.msi 文件安装到桌面。

您必须按如下方式修改脚本:

ExecWait '"$SYSDIR\msiExec" /i "$INSTDIR\mysql.msi" /qn'

【讨论】:

  • 答案应该是解决方案,而不是建议。这能解决问题吗?然后请解释如何,不要简单地说“尝试”。这仅仅是一个建议,您不确定它是否能解决问题?那么这不是一个答案。请澄清以避免被标记和删除,谢谢!
猜你喜欢
  • 1970-01-01
  • 2011-11-29
  • 1970-01-01
  • 1970-01-01
  • 2013-05-25
  • 2011-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多