Установка полной установки 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

Однако это только похоже на установку другого установщика:

установочная папка mysql

Если я запускаю файл .msi вручную, я выбираю полный, и процесс фактически устанавливает MySQL полностью, с запущенной службой и т. Д.

Как я могу выполнить такую ​​установку в автоматическом режиме с помощью NSIS?

Обновление:

Я перепробовал множество различных команд и обнаружил, что ничего из того, что я сделал, не установил полную версию MySQL с аргументами. Мне удалось установить MySQL полностью, но при этом не удалось установить службу и другие ключевые функции (верхняя часть http://dev.mysql.com/doc/relnotes/mysql-installer/en/mysql-installer-news-1-4-12.html)

Я попробовал второй раздел приведенной выше ссылки, но безуспешно. Все, что он сделал, это установил папку с параметрами, показанными на изображении выше.

Я попытался использовать установщик команд, как указано на плакате ниже. Однако это дало мне приглашение для входа в Oracle! Мне нужно установить, и это без взаимодействия с пользователем.

введите описание изображения здесь

Любые идеи?


person Dan James Palmer    schedule 10.10.2016    source источник
comment
Это не имеет ничего общего с NSIS, удалите тег NSIS.   -  person Anders    schedule 11.10.2016
comment
Кажется, существует более одного .msi для MySQL, который вы скачали? Редакция сообщества?   -  person Anders    schedule 11.10.2016
comment
Да, версия для сообщества   -  person Dan James Palmer    schedule 12.10.2016


Ответы (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"

or

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"
person Anders    schedule 10.10.2016
comment
Спасибо за подробный ответ @Anders, я проверю аргументы и сделаю еще несколько проб и ошибок, чтобы увидеть, как далеко я продвинулся! - person Dan James Palmer; 12.10.2016
comment
Я много чего пробовал. Мой отзыв находится в моем OP. Любые идеи? - person Dan James Palmer; 14.10.2016
comment
Я никогда не устанавливал MySQL, поэтому не знаю. Вы можете попробовать спросить на их форуме. Кажется, эта тема связана с вашей проблемой: forum.mysql. com / read.php? 169,647447,647447 # msg-647447 - person Anders; 14.10.2016
comment
Мне удалось его установить. Есть проблемы с аргументами, но ваш ответ помог мне, по крайней мере, установить его - person Dan James Palmer; 18.10.2016
comment
Вторая команда не работает. Это не позволяет выбирать конкретные компоненты. И это тоже не тихо - person ajcg; 02.03.2020

В установщике скрипт скопирует файл mysql.msi в каталог установки. Сначала создайте файл mysql.msi в том же каталоге, что и приведенный ниже сценарий установщика, затем скомпилируйте сценарий установщика. Если сценарий установки находится на рабочем столе, удалите файл mysql.msi перед запуском скомпилированного установщика. Запуск простого установщика устанавливает файл mysql.msi на рабочий стол.

Вам нужно будет изменить сценарий следующим образом:

ExecWait '"$SYSDIR\msiExec" /i "$INSTDIR\mysql.msi" /qn'
person Andres Mauricio    schedule 01.12.2018
comment
Ответы должны быть решениями, а не предложениями. Решает ли это проблему? Тогда объясните, как это сделать, а не просто говорите «попробуй». Это просто предложение, и вы не уверены, что оно решит проблему? Тогда это не ответ. Пожалуйста, поясните, чтобы это не было помечено и удалено, спасибо! - person Max Vollmer; 01.12.2018