
Я хочу тихо установить 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" параметры'.
Источник:Документация