我有一个基本的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文件,我可以选择" full"并且该过程实际上安装了MySQL,服务正在运行等。
如何使用NSIS以静默方式实现此类安装?
更新
我尝试了很多不同的命令,发现我没有用参数安装完整的MySQL。我设法安装了MySQL,但是没有安装服务和其他主要功能(http://dev.mysql.com/doc/relnotes/mysql-installer/en/mysql-installer-news-1-4-12.html的顶部)
我尝试了上面链接的第二部分,没有运气。它只是安装了一个文件夹,其中包含上图所示的选项。
我尝试使用命令安装程序,如下面提到的海报所示。但是,这给了我一个Oracle登录提示!我需要在没有用户交互的情况下进行安装。
有什么想法吗?
答案 0 :(得分:0)
通过执行文档here执行MySQLInstallerConsole可能继续安装,但是当然要让.msi执行安装更好,为此你需要找出正确的参数传递给msiexec。
这些参数只有.msi的作者知道,我很难在MySQL网站上找到它的文档。我发现任何有用信息的唯一地方是安装程序发行说明!
我发现了对installdir
和datadir
参数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'