I would like to install MySQL service after install in Inno Setup
. There is already similar question here, but no solution there works for me.
If I use sc create
like that in the solution, then after installation command promt just pop up, but doesn't do anything.
I tried modify command according some page, it works great in cmd:
sc create "MySQLSW" binpath= "\"C:\Program Files (x86)\Drevarska spolecnost\MySQL Server 5.6\bin\mysqld\" --defaults-file=\"C:\Program Files (x86)\Drevarska spolecnost\my.ini\" MySQLSW" DisplayName= "MySQLSW" start= "auto"
For Inno Setup it needs to be double quoted, so I tried this and few variants of it
[Run]
Filename: "{cmd}"; Parameters: "sc create ""MySQLSW"" binpath= ""\""{app}\MySQL Server 5.6\bin\mysqld\"" --defaults-file=\""{app}\my.ini\"" MySQLSW"" DisplayName= ""MySQLSW"" start= ""auto""";
But cmd won't execute anything. Problem could be with that backslash, but I don't know the correct syntax.
I also tried add API from here and use following code, but there must be something wrong too, because it just pass installation, but won't create service.
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
begin
if IsServiceInstalled('MySQLSW') = false then begin
if InstallService(ExpandConstant('{app}\MySQL Server 5.6\bin\mysqld.exe'),ExpandConstant('--defaults-file="{app}\my.ini"'),'MySQLSW','Needed for mysql database',SERVICE_WIN32_OWN_PROCESS,SERVICE_AUTO_START) = true then begin
StartService('MySQLSW');
end
end
else if IsServiceRunning('MySQLSW') then
MsgBox('MySQLSW is running',mbInformation, MB_OK);
end;
end;
I'm not much skilled in this yet, but I'm sure, there would be some misplaced quote somewhere, but I can't find it. Thanks in advance for help.