MySQL installieren und laden der Datenbank auf Inno-Setup-Skript
Habe ich gelesen, durch eine Menge von Dokumenten auf Stack Overflow, Ihr seid großartig! Ich habe einige code, der vorgeschlagen wurde, auf einen anderen post. Die Hilfe war Super! Ich war in der Lage, die MySQL geladen und gestartet Dank RobeN. Jedoch habe ich die Dokumentation gelesen, dass vorgeschlagen wurde, um das automatische laden einer Datenbank in der Reihenfolge. Ich kann nicht scheinen, um es herausgefunden. Jede Hilfe würde groß sein!
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "Test"
#define MyAppVersion "1.5"
#define MyAppPublisher "My Company, Inc."
#define MyAppURL "http://www.example.com/"
#define MyAppExeName "DispatchSystem.exe"
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{790A9827-137F-4D93-A981-1A5C38FFB8F8}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
OutputDir=C:\gd\FL\Project\xsbucks_vc\inno\
OutputBaseFilename=Logistics Dispatch
Compression=lzma
SolidCompression=yes
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
[Files]
Source: "D:\SWW\CaLogistics\EXE\mysql-5.5.11-win32.msi"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\SWW\CaLogistics\EXE\DispatchSystem.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\SWW\CaLogistics\EXE\background.fw.png"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\SWW\CaLogistics\EXE\background.png"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\SWW\CaLogistics\EXE\background234.jpg"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\SWW\CaLogistics\EXE\database.sql"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\SWW\CaLogistics\EXE\ds.ini"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\SWW\CaLogistics\EXE\Ionic.Zip.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\SWW\CaLogistics\EXE\logo.jpg"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\SWW\CaLogistics\EXE\logo.png"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\SWW\CaLogistics\EXE\MySql.Data.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\SWW\CaLogistics\EXE\MySqlBackup.dll"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
[Run]
Filename: msiexec; Parameters: "/i mysql-5.5.11-win32.msi /qn INSTALLDIR=""C:\mysql"""; WorkingDir:{app}; StatusMsg: Please wait while we install Mysql 5.5.11; Flags: runhidden
Filename: C:\mysql\bin\mysqld.exe; Parameters:" --install"; WorkingDir: {app}; StatusMsg: Installing MySQL services; Description: Installing MySQL Service; Flags: runhidden
Filename: net.exe; Parameters: start mysql; StatusMsg: Starting MySQL server; Description: Starting MySQL Server; Flags: runhidden
Filename: C:\mysql\bin\mysql.exe; Parameters: "-e ""update mysql.user set password=PASSWORD('admin') where user='root';"" -u root"; WorkingDir: {app}; StatusMsg: Configuring MYSQL ; Flags: runhidden
Filename: C:\mysql\bin\mysql.exe; Parameters: "-e ""flush privileges;"" -u root -padmin"; WorkingDir: {app}; StatusMsg: Configuring Database Servers; Flags: runhidden
Filename: C:\mysql\bin\mysql.exe; Parameters: "-u root -padmin -h localhost --execute=""SOURCE database.sql"""; WorkingDir: {app}; StatusMsg: Loading Database; Flags: runhidden
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
[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;
- Wenn nennst du MYSSQL_IS()? Nach dem Auspacken(msiexec) oder die Installation von service(-- install)?
- hardcoding Pfade dangerouse
C:\mysql\bin\mysqld.exe
was über den Einbau in einen subdirectoring denen Ihre app installiert ist, mit{app}\mysql\bin\mysql.exe
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schaffte ich es finden einen workaround zu diesem problem. Statt beim laden der Datenbank direkt
aus dem INNO script, ich habe die sql-Befehle in eine batch-Datei und ausgeführt .Fledermaus aus dem Skript.
Geben Sie diese in einem Editor-Dokument und speichern Sie es als loadDB.bat .
Die erste Zeile setzt den Pfad zu Ihrem Verzeichnis auf, wo Ihre mysql.exe installiert ist.
Die nächste Zeile erstellt eine leere Datenbank.(Ich weiß nicht warum, aber ich kann nicht zur mysql laden Sie die Datenbank-Datei ohne das erstellen einer leeren Datenbank auf dem server zuerst) Die Letzte Zeile ist der mysql Befehl für das laden der Datenbank aus der Datenbank -, sql-Datei.
Nun, in Ihren INNO-Skript unter dem [FILES] - Abschnitt hinzufügen .bat-Datei
- Und unterhalb der [RUN] Abschnitt ausführen .bat. Hinweis: sollte diese Zeile die Letzte Zeile im [RUN] Abschnitt, denn es sollte nur ausgeführt wird, nachdem der Mysql server installiert ist.
Nun kompilieren und starten Sie das setup.
Als seitliche Anmerkung : ich habe nicht versucht, es aber vielleicht, wenn Sie fügen Sie die mysql-Befehle in der .Fledermaus direkt in das inno-script mit den richtigen Parametern, könnten Sie laden Sie die Datenbank ohne die Notwendigkeit der batch-Datei.
Hoffe, das löst dein problem.
C:\Program Files (x86)\MySQL\MySQL Server 5.5
Nachdem Sie MySQL installiert und habe es gestartet, es ist einfach zu laden Sie eine MySQL-Skript-Datei.
Der Knackpunkt ist, übergeben Sie den Befehl "Quelle" zu mysql.exe parameter-e, so könnte es laden meine Skript-Datei. Vorbei Skript Namen mit "<" - signal nicht für mich arbeiten.