2016-09-03 10 views
-1

私のアプリケーションでmysqlをインストールするには以下のスクリプトを使用していますが、データベースを作成してデータベーススクリプトをロードすることはできません。デバッガはエラーコード1を返します。エラーの原因に関するその他のメッセージは見つかりません。mysqlデータベースを作成するinno setupがエラーコード1を返します

イベントビューアをチェックすると、サービスが正常に作成されて開始されたことがわかりましたが、データベースは作成されません。

[Run] 
;------------------install service MySQL -------------------------------- 
;Filename: "{app}\mysql\bin\mysqld.exe"; Parameters: "--install"; WorkingDir: "{app}\mysql\bin"; StatusMsg: "Installing the MySQL"; Description: "Installing MySQL"; Flags: runhidden; Check: MySQL_Is; 
Filename: msiexec; Parameters: "/i ""{app}\mysql-5.5.11-win32.msi"" /qn INSTALLDIR=""{app}\mysql"" DATADIR=""{app}\mysql\data"" "; WorkingDir:{app}; StatusMsg: Please wait while we install; Flags: runhidden 

;---------------------CONFIGURING ---------------------------- 
Filename: {app}\mysql\bin\MySQLInstanceConfig.exe; Parameters:"-i -q ""-l{app}\mysql\mysql_install_log.txt"" ""-nMySQL Server 5.5"" ""-p{app}\mysql"" -v5.5.23 ""-t{app}\mysql\my-template.ini"" ""-c{app}\mysql\mysql.ini"" ServerType=SERVER DatabaseType=MIXED Port=3311 StrictMode=yes ConnectionCount=15 Charset=utf8 ServiceName=MySQL55 AddBinToPath=yes RootPassword=root4u SkipNetworking=no"; WorkingDir: {app}; StatusMsg: Configuring MySQL services; Description: Configuring MySQL Service; Flags: runhidden 


;--------------------- load Database script 

;Filename: "{app}\mysql\bin\mysql.exe"; Parameters: "-u root -proot4u -h localhost -e ""source {app}\items_db.sql"""; WorkingDir: {app}; StatusMsg: Loading Database Initial Data; Flags: runhidden waituntilterminated; 

Filename: {app}\{#AppExeName}; Description: {cm:LaunchProgram,{#AppName}}; Flags: nowait postinstall skipifsilent 

[UninstallRun] 
Filename: {sys}\net.exe; Parameters: "stop ""MySQL55"""; StatusMsg: "Stopping MySQL Service ..."; Flags: runhidden; 
Filename: "{app}\mysql\bin\mysqld.exe"; Parameters: "remove ""MySQL55"""; StatusMsg: "Deleting MySQL Service ..."; Flags: runhidden; 
Filename: msiexec; Parameters: "/x ""{app}\mysql-5.5.11-win32.msi"" "; 

=========================データベーススクリプト==============

/* Tables */ 
DROP TABLE IF EXISTS clothes; 

CREATE TABLE clothes (
    id int AUTO_INCREMENT NOT NULL, 
    name varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci, 
    PRIMARY KEY (id) 
) ENGINE = MyISAM; 

Insert Into clothes (Id,Name) values (1,"Shirt"); 
+0

で回避する方法を探し始めたこれらの悪い質問を投稿する停止してください。これは3番目の行です。いずれの時代も、コマンドをスタンドアロンで実行して結果を確認するのは面倒ではありません。以前の質問は、Inno Setupとはまったく関係ありませんでした。両方の時間、それは悪いコマンドまたは入力だった。コマンドをスタンドアロンで実行した場合は、エラーメッセージまたはその他の問題の兆候が表示されます。 –

+0

コマンドエラーであることを指摘するほうが簡単だったでしょうが、それを指摘してください。私に答えがあるなら、私は尋ねると思いますか? – Smith

+0

コマンドラインで実際にコマンドをテストした後にのみ質問してください。あなたの答えがはっきりとわかるように、あなたがしなかったこと。私はあなたが最終的にそのことを実感したことを願っています。そして、あなたはまだ「イノセットアップでは私のコマンドは機能しません。実際の問題が*すべて、私はそれをデバッグするのに役立つ実際のエラーメッセージが表示されるようなコマンドでテストするのにも気にしませんでした。 –

答えて

0

だから、デバッグの時間後とウェブを検索、私は、ファイルからSQL文から実行するとき

mysqlはソースパスパラメータでバックラッシュを許可していない奇妙な行動を発見しました。

;Filename: "{app}\mysql\bin\mysql.exe"; Parameters: "-u root -proot4u -h localhost -e ""source {app}\items_db.sql"""; WorkingDir: {app}; StatusMsg: Loading Database Initial Data; Flags: runhidden waituntilterminated; 

ので、私はこの

;Filename: "{app}\mysql\bin\mysql.exe"; Parameters: "-u root -proot4u -h localhost -e ""source {app}\{code:GetScriptData}"""; WorkingDir: {app}; StatusMsg: Loading Database Initial Data; Flags: runhidden waituntilterminated; 

とコードセクション

[Code] 
function GetScriptData(Value: string): string; 
begin 
    Result := ExpandConstant('{app}') +'/items_db.sql'; 
    StringChangeEx(Result, '\', '/', True); 
end; 
関連する問題