您是否有其他使用Wix执行MySql的示例?

时间:2011-05-31 10:13:54

标签: mysql windows-7 installer wix

我仍在使用我的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时,我的数据库还没有创建。)

我能够将密码属性留空的唯一方法是添加该Admin标记。我不知道该怎么做。

  1. 第二个问题是在SQLComponent中,我必须写下数据库名称,但当然,这个数据库实际上还不存在。这是一个问题吗? (我也尝试手动创建数据库,这样当.msi运行它就已经存在了......但是没有其他事情发生了)
  2. 我还使用日志记录运行了msiexec,看来我的sql脚本执行了...我没有在日志中看到的错误。

    帮助?这看起来像安装人员应该做的事情......而且我只是做错了......

    提前致谢!

    -Adeena

1 个答案:

答案 0 :(得分:1)

WiX和MSI都没有MySQL的原生支持。 InstallShield有MySQL支持。