如何在inno setup中进行mysql的静默安装?

我将为我的Java应用程序创建一个安装程序。它使用mysql数据库,因此程序的安装必须包括mysql服务器5.5的安装,服务器的配置和数据库的加载。我使用Inno设置来执行此操作,但发现了一些问题。我找到了此代码,但它有点旧了

Filename: msiexec; Parameters: "/i mysql-5.5.11-win32.msi /qn INSTALLDIR=""C:\mysql"""; WorkingDir: C:\Users\Gabriele\Desktop\setup; StatusMsg: Sto installando Mysql 5.5.11;  Flags: runhidden

Filename: C:\mysql\bin\mysqld-nt.exe; Parameters: --install; WorkingDir: C:\mysql\bin; StatusMsg: Sto installando il Servizio MySQL; Description: Installing MySQL Service; Flags: runhidden

Filename: net.exe; Parameters: start mysql; StatusMsg: Sto Avviando il Servizio MySQL; Description: Avvio Servizio MySQL; Flags: runhidden

Filename: C:\mysql\bin\mysql.exe; Parameters: "-e ""insert into mysql.user(host,user,password) values ('localhost','root', PASSWORD('emmaus');"" -u root"; WorkingDir: {tmp}; StatusMsg: Configurazione del Server della Base di Dati; Flags: runhidden

Filename: C:\mysql\bin\mysql.exe; Parameters: "-u root -h localhost -e ""create database ata";

Filename: C:\mysql\bin\mysql.exe; Parameters: "-e ""grant all privileges on ata.* to ata;"" -u root"; WorkingDir: {tmp}; StatusMsg: Configurazione Server Base di Dati; Flags: runhidden

Filename: C:\mysql\bin\mysql.exe; Parameters: "-e ""flush privileges;"" -u root"; WorkingDir: {tmp}; StatusMsg: Configurazione Server Base di Dati; Flags: runhidden

Filename: C:\mysql\bin\mysql.exe; Parameters: "-u root -h localhost -e ""use ata; source ata.sql;"; WorkingDir: {tmp}; StatusMsg: Caricamento base di dati; Flags: runhidden

当我调试时,它会在第一条语句后生成错误。在第二条指令中找不到指定的程序。我尝试使用mysqld代替mysqld-nt,但没有任何变化

有人能帮我吗??

回答:

[Files]

Source: "J:\mysql-5.5.11-win32.msi"; DestDir: "{tmp}"; Flags: nocompression dontcopy

[Run]

Filename: "{reg:HKLM\SOFTWARE\MySQL AB\MySQL Server 5.5,Location}\bin\mysqld.exe";

Parameters: "--install"; WorkingDir: "{reg:HKLM\SOFTWARE\MySQL AB\MySQL Server 5.5,Location}\bin";

StatusMsg: "Sto installando il Servizio MySQL";

Description: "Installing MySQL Service";

Flags: runhidden; Check: MySQL_Is

;//and the rest of commands

[Code]

function MySQL_Is(): Boolean;

var

iResultCode: Integer;

begin

Result := true;

if (not RegKeyExists(HKLM, 'SOFTWARE\MySQL AB\MySQL Server 5.5')) or

(not FileExists(ExpandConstant('{reg:HKLM\SOFTWARE\MySQL AB\MySQL Server 5.5,Location}\bin\mysql.exe')))

then begin

ExtractTemporaryFile('mysql-5.5.11-win32.msi');

Exec('msiexec.exe', '/i mysql-5.5.11-win32.msi /qn INSTALLDIR="C:\mysql"',

ExpandConstant('{tmp}'), SW_HIDE, ewWaitUntilTerminated, iResultCode);

if not FileExists(ExpandConstant('{reg:HKLM\SOFTWARE\MySQL AB\MySQL Server 5.5,Location}\bin\mysql.exe')) then begin

MsgBox('Something went wrong! Installation should be terminated',

mbInformation, MB_OK);

Result := false;

end;

end;

end;

以上是 如何在inno setup中进行mysql的静默安装? 的全部内容, 来源链接: utcz.com/qa/430665.html

回到顶部