mysql instalação silenciosa e configuração no nsi

1

Eu quero instalar silenciosamente o MySQL 5.0 no NSI. Eu tentei o seguinte código no 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"

Isso instala o MySQL, mas não o cofigure.

Eu quero configurá-lo com

  • pass = root
  • porta = 3306
  • servicename = MySQL
  • e ativar o acesso root da máquina remota

EDIT1

Agora está sendo configurado ...

Para serverhost como localhost ou 127.0.0.1 ele funciona, mas não para o ip addreses dos outros sistemas que estão na rede.

Se eu tentar acessar o banco de dados no banco de dados instalado silenciosamente do PC na rede, recebo o seguinte erro:

Eu acho que isso é porque eu preciso passar algum parâmetro para e ativar o acesso root da máquina remota.

    
por pradnya 18.04.2012 / 13:46

2 respostas

0

Tente citar o nome do arquivo mysqlinstanceconfig.exe , assim:

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"

A razão para isso é que você tem espaços no caminho para o nome do executável. Esse caminho deve estar entre aspas para poder formar um único caminho.

    
por 18.04.2012 / 13:56
0

O comando inteiro passado para ExecWait deve estar entre '' se contiver espaços.

Os parâmetros dentro de seus parâmetros precisam ser colocados em "" se contiverem espaços. Você pode ver um exemplo perfeito de como fazer corretamente em sua primeira chamada para ExecWait .

Note, if the command could have spaces, you should put it in quotes to delimit it from parameters. e.g.: ExecWait '"$INSTDIR\command.exe" parameters'.

Fonte: Documentação

    
por 18.04.2012 / 13:59