тихая установка и настройка mysql в nsi

тихая установка и настройка mysql в nsi

Я хочу тихо установить MySQL 5.0 в NSI. Я попробовал следующий код в NSI:

  ExecWait 'msiexec /i "$INSTDIR\mysql-essential-5.0.27-win32.msi" /qn'
  ExecWait "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqlinstanceconfig.exe -i -q ServiceName=MySQL RootPassword=root ServerType=DEVELOPMENT    DatabaseType=MYISAM Port=3306 RootCurrentPassword=root"

Это устанавливает MySQL, но не настраивает его.

Я хочу настроить его с помощью

  • пароль=корень
  • порт=3306
  • имя_службы=Mysql
  • и включить root-доступ с удаленной машины

ИЗМЕНИТЬ1

Теперь настраиваем...

Для serverhost, например localhost или 127.0.0.1, это работает, но не для IP-адресов других систем, находящихся в сети.

Если я попытаюсь получить доступ к базе данных, установленной в фоновом режиме, с ПК в сети, я получу следующую ошибку:

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

Я думаю, это потому, что мне нужно передать какой-то параметр для включения доступа root с удаленной машины.

решение1

Попробуйте заключить mysqlinstanceconfig.exeимя файла в кавычки, например так:

ExecWait 'msiexec /i "$INSTDIR\mysql-essential-5.0.27-win32.msi" /qn'
ExecWait "$\"C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqlinstanceconfig.exe$\" -i -q ServiceName=MySQL RootPassword=root ServerType=DEVELOPMENT    DatabaseType=MYISAM Port=3306 RootCurrentPassword=root"

Причина этого в том, что в пути к имени исполняемого файла есть пробелы. Этот путь должен быть заключен в кавычки, чтобы он мог образовать единый путь.

решение2

Вся переданная команда ExecWaitдолжна быть заключена в , ''если она содержит пробелы.

Параметрывнутриваши параметры, должны быть заключены в, ""если они содержат пробелы. Вы можете увидеть прекрасный пример того, как это сделатьправильнопри первом вызове ExecWait.

Обратите внимание: если команда может содержать пробелы, ее следует заключить в кавычки, чтобы отделить от параметров. Например: ExecWait '"$INSTDIR\command.exe" параметры'.

Источник:Документация

Связанный контент