2013-10-15 60 views
1

我正在使用inno安裝程序爲我的Java應用程序創建安裝程序。該應用程序使用MySQL服務器5.6。我如何設置用戶,密碼和主機?另外,我怎樣才能加載我的數據庫?Mysql服務與當前服務衝突

我用net.exe命令啓動mysql服務,但是服務與mysql的當前服務衝突。我如何獲得在innosetup中運行的服務?

Filename: {sys}\net.exe; Parameters: start mysql; StatusMsg: Starting MySQL server;    Description: Starting MySQL Server; Flags: runhidden 
+0

我不能確定你的問題是什麼。如果你想在同一臺機器上運行兩個不同的MySQL版本,你需要確保它們使用不同的端口,並且這些服務有不同的名稱。 –

+0

我試過alvaro,但無法讓服務運行。獲取錯誤無法創建測試文件C:\ Program Files(x86)\ MySQL \ MySQL Server 5.6 \ T.lower-test。 – user2881444

+0

這是與原始問題有關還是新問題?這個問題只發生在Inno Setup中嗎? –

回答

1

首先,您必須停止衝突的MySQL服務進程,然後才能使用此命令行創建數據庫。我確定InnoSetup提供對shell執行的訪問。

--user的mysql.exe =本身份識別碼 - 密碼= MYPWD --silent --force < CREATEDB.sql

CREATEDB.sql

CREATE DATABASE mydb DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_swedish_ci; 
USE mydb; 

CREATE TABLE table1 (
    id bigint NOT NULL auto_increment, 
    name varchar(64) NOT NULL default '', 
    PRIMARY KEY (id), 
    UNIQUE (name) 
) ENGINE=InnoDB DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_swedish_ci; 

Insert Into table1 (name) Values('default row 1'); 
Insert Into table1 (name) Values('default row 2'); 

GRANT ALL PRIVILEGES ON * TO 'mydbadmin'@'localhost' IDENTIFIED BY 'mydbadminpwd'; 
+0

謝謝whome ..但是這個東西不能在同一時間啓動mysql服務..獲取錯誤,因爲無法創建測試文件C:\ Program Files(x86)\ MySQL \ MySQL Server 5.6 \ T.lower-test – user2881444

+0

是否可以從innosetup腳本運行shellexec命令?是net.exe相同的DOS控制檯命令啓動服務:NET mysql – Whome

+0

使用任何方式的命令行來控制從Inno Setup Windows服務是錯誤的。這就像滾動骰子,希望你滾動6.矇住眼睛。 Inno Setup不會告訴你服務是否已經啓動。如果啓動失敗,您無法重複嘗試或告訴用戶問題的真正根源。有這麼多的缺點,可能會更好地考慮一個新的部分,如'[服務]',你可以控制服務的功能請求。這是一個非常頻繁的問題,我敢打賭,很多人在命令行中使用弱方式。 – TLama