1

Я хочу тихо установить 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-доступ с удаленного компьютера

EDIT1

Теперь это настраивается ...

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

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

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

2 ответа2

0

Попробуйте процитировать имя файла 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"

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

0

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .