es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Intentando realizar una instalación silenciosa utilizando Inno Setup para MySQL Server 5.1, pero el servidor MySQL no se iniciaba.

He intentado el siguiente código para instalar silenciosamente MySQL pero el script no está iniciando el servidor SQL. A continuación se muestra el código:

Nombre de archivo: net.exe; Parámetros: iniciar MySQL; EstadoMsg: Iniciando el servicio MySQL; Descripción: Iniciando el servicio mysql; Flags: runhidden

–> devuelve el valor 2.

Por favor, corrija donde estoy cometiendo un error.

[Archivos]
Source: "Sample.exe"; DestDir: "{app}"; Flags: ignoreversion

; Instalación de MYSQL
Source: "mysql-5.1.73-winx64.msi"; DestDir: "{app}"; Flags: deleteafterinstall; Permissions: everyone-full; Check: MySQLIsNotInstalled
; AfterInstall: InstallMySQL

[Run]
Filename: msiexec.exe; Parameters:"/i ""{app}\mysql-5.1.73-winx64.msi"" /qn INSTALLDIR=""C:\Program Files\MySQL\MySQL Server 5.1\"" "; WorkingDir:{app}; StatusMsg:"Instalando el paquete MySQL"; Flags: runhidden;
Filename: C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld.exe; Parameters:–install MySQL –port=3306;StatusMsg: Instalando el servicio MySQL;Descripción: Instalando el servicio mysql; Flags: runhidden
Filename: net.exe; Parameters:start MySQL; StatusMsg: Iniciando el servicio MySQL; Descripción: Iniciando el servicio mysql; Flags: runhidden
Filename: "{sys}\netsh.exe"; Parameters: firewall add portopening TCP 3306 MySQL; StatusMsg: "Registrando el puerto MySQL por defecto …"; Flags: runhidden; MinVersion: 0,5.01.2600sp2
;Filename: "{sys}\netsh.exe"; Parameters: "firewall set service type = fileandprint mode = enable"; StatusMsg: "Activando el uso compartido de archivos e impresoras …"; Flags: runhidden; MinVersion: 0,5.01.2600sp2

Tags:  ,

Answer

  1. Avatar for davy.ai

    El problema con el código podría estar relacionado con la siguiente línea:

    Filename: C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld.exe; Parameters:--install MySQL --port=3306;StatusMsg: Installation the service MySQL;Description: Installation the service mysql; Flags: runhidden 
    

    La ruta hacia mysqld.exe podría no ser correcta, o el servicio podría no estar instalado correctamente. Puedes intentar verificar si el servicio está instalado correctamente revisando los servicios de Windows, y también intentar iniciar manualmente el servicio de MySQL.

    También puedes agregar un script de post-instalación para iniciar el servicio después de que la instalación esté completada. Aquí hay un ejemplo:

    [Run]
    Filename: msiexec.exe; Parameters:"/i ""{app}\mysql-5.7.22-winx64.msi"" /qn INSTALLDIR=""{app}\mysql"""; WorkingDir: {app}; Flags: runhidden; StatusMsg: Installing MySQL...
    
    [Code]
    procedure CurStepChanged(CurStep: TSetupStep);
    var
      ResultCode: Integer;
    begin
      // Check if the installation is complete and start the MySQL service
      if CurStep = ssPostInstall then
      begin
        if MsgBox('La instalación está completa. ¿Desea iniciar el servicio MySQL?', mbConfirmation, MB_YESNO) = IDYES then
        begin
          if Exec('cmd.exe', '/c net start MySQL', '', SW_HIDE, ewWaitUntilTerminated, ResultCode) then
            MsgBox('El servicio MySQL se ha iniciado correctamente.', mbInformation, MB_OK);
        end;
      end;
    end;
    

    En este script, agregamos una función CurStepChanged que se ejecuta después de que la instalación esté completa. La función pregunta al usuario si desea iniciar el servicio de MySQL y, si es así, ejecuta el comando para iniciar el servicio (net start MySQL) usando la función Exec.

    Esto debería garantizar que el servicio de MySQL se inicie después de que la instalación esté completa.

Comments are closed.