MySQL тихий установить и настроить в NSI

4593
pradnya

Я хочу тихо установить 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-адресов других систем, которые находятся в сети.

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

enter image description here

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

1

2 ответа на вопрос

0
Ove

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

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

это все еще не настраивается ... :( .. код настройки корректен? pradnya 12 лет назад 0
Я выполнил только две указанные вами команды, и браузер MySQL Query работает для меня. Он может подключаться локально к базе данных. Ove 12 лет назад 0
я хочу подключить его удаленно .. как это сделать .. я отредактировал свой вопрос .. pradnya 12 лет назад 0
Попробуйте добавить `SkipNetworking = no` в командной строке для mysqlinstanceconfig. Вы можете увидеть все параметры [здесь] (http://dev.mysql.com/doc/mysql-windows-excerpt/5.1/en/mysql-config-wizard-cmdline.html) Ove 12 лет назад 0
я должен добавить SkipNetworking = нет в конце строки Execwait? 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 SkipNetworking = no "тогда не работает .. ( pradnya 12 лет назад 0
Попробуйте перезапустить службу MySQL после ее настройки. Если даже это не сработает, боюсь, я не смогу вам помочь, поскольку у меня нет 2-х сетевых компьютеров для тестирования. Ove 12 лет назад 0
0
Der Hochstapler

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

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

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

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