Установка полной MySQL установки без вывода сообщений с использованием NSIS
У меня есть базовая настройка сценария 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! Мне нужно установить, и это без взаимодействия с пользователем.
Есть идеи?
2 ответа
Вероятно, было бы возможно продолжить установку, выполнив MySQLInstallerConsole, как описано здесь, но, конечно, гораздо лучше получить.msi для выполнения установки, и для этого вам нужно определить правильные параметры для передачи в msiexec.
Эти параметры известны только авторам.msi, и мне было очень трудно найти документацию по нему на веб-сайте MySQL. Единственное место, где я нашел полезную информацию, было в заметках о выпуске программы установки!
Я нашел некоторые ссылки на installdir
а также datadir
параметры здесь. Я не уверен, что это параметры MSI или они идут в CONSOLEARGS
строка.
При использовании /passive
Переключатель кажется, что вы можете передать строковый параметр с именем CONSOLEARGS
и он поддерживает множество опций, как описано здесь:
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"
Пытаться:
ExecWait '"$ SYSDIR \ msiExec" / i "$ INSTDIR \ mysql.msi" / qn'