使用NSIS以静默方式安装完整的MySQL安装

时间:2016-10-10 18:13:35

标签: mysql install msiexec silent-installer

我有一个基本的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

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

mysql install folder

如果我手动运行.msi文件,我可以选择" full"并且该过程实际上安装了MySQL,服务正在运行等。

如何使用NSIS以静默方式实现此类安装?

更新

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

我尝试了上面链接的第二部分,没有运气。它只是安装了一个文件夹,其中包含上图所示的选项。

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

enter image description here

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

通过执行文档here执行MySQLInstallerConsole可能继续安装,但是当然要让.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"

答案 1 :(得分:0)

尝试:

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