我仍在使用我的Wix安裝程序,其中包括替換一些MySql命令。您是否有使用Wix執行MySql的其他示例?
具體而言,我希望安裝程序運行創建用戶的腳本,然後使用該用戶,我希望安裝程序運行創建數據庫並創建表的腳本。 (看起來安裝程序應該能夠做到這一點。)
我之前發佈的關於該用戶的信息,目前還沒有弄清楚。
因此,暫時忽略一下,我們假設我的用戶存在。此用戶恰巧不是有密碼。如果沒有安裝,我通常做的命令來運行我的腳本創建數據庫和表是:
的mysql --user = MYNAME < thisismyscript.sql
這工作得很好 - 所以我知道我的腳本工作。
我在Wix中看到了兩個問題,我希望有人可以解釋或發佈其他示例(我通過查看其他示例學得最好)。
1)似乎是缺少密碼。
在.wxs文件,我有:
<util:User Id='SQLUser' Name='[SQLUSER]' />
<Component Id='SqlComponent' Guid='7B524167-D8CF-465E-AEE8-6B70CF712A3A' KeyPath='yes'>
<sql:SqlDatabase Id='SqlDatabase' Database='adatabase' User='SQLUser' Server='[SQLSERVER]'
CreateOnInstall='yes' DropOnUninstall='yes' ContinueOnError='yes'>
<sql:SqlScript Id='mynewdb' BinaryKey='mynewdb' ExecuteOnInstall='yes' />
</sql:SqlDatabase>
</Component>
<Binary Id='mynewdb' SourceFile='thisismyscript.sql' />
<Property Id='SQLUSER'>myname</Property>
<Property Id='SQLSERVER'>localhost</Property>
(這是所有內嵌在.wxs文件正確的地方,該文件編譯罰款...它只是當我運行.msi ,我的數據庫尚未創建。)
我能夠將密碼屬性留空的唯一方法是添加該管理標籤。我不知道這裏要做什麼。
- 第二個問題是,在SQLComponent中,我不得不記下一個數據庫名稱,但當然這個數據庫實際上並不存在。這是一個問題嗎? (我也嘗試手動創建數據庫,以便當.msi運行時它已經在那裏...但是然後沒有其他發生)
我也運行msiexec與日誌記錄,它似乎是我的SQL腳本執行......沒有任何錯誤,我可以在日誌中看到。
幫助?這看起來好像安裝人員應該能夠做的事情......而且我只是在做錯事...
在此先感謝!
-Adeena
MSI不允許帶有「」值的屬性。您可能需要考慮刪除「SQLPASSWORD」屬性的聲明;如果沒有定義,它的值就是''「'。 – 2011-05-31 13:05:58
因此,我只是按照建議刪除了SQLPASSWORD(並修改了上面的wix代碼以向您展示它現在的樣子)。蠟燭和光線運行良好,但是當我去安裝時,它仍然沒有創建我的數據庫... :( – adeena 2011-06-01 00:21:14
我沒有想法然後。它可能與權限問題有關嗎?我的意思是腳本啓動但未能創建一個數據庫因爲_permission denied_。MSI詳細日誌將具有它開始運行SQL腳本的參數;也許它會揭示這個問題。 – 2011-06-01 15:05:44