gpt4 book ai didi

mysql - 删除现有产品之前和之后的自定义操作

转载 作者:行者123 更新时间:2023-11-29 13:39:30 25 4
gpt4 key购买 nike

我正在尝试构建一个将升级 mysql 安装的 msi。

我可以执行文件的基本升级,并且在全新安装时一切正常,我遇到的问题是,在执行升级时,我需要围绕卸载以前的版本执行一些操作。

我遇到问题的唯一操作是使用以下命令行更改 MySQL GLOBAL 设置之一

mysql.exe -u root --host=127.0.0.1 --port=5002 mysql --execute="SET GLOBAL innodb_fast_shutdown=0"

我这样做是因为建议升级数据库时 innodb 应该执行缓慢关闭,这是我能看到的最简单的方法。

目前我使用以下 Wix 来执行此操作

            <CustomAction Id="Innodb_slowshutdown" Property="OLDMYSQLEXE" Execute="immediate" 
ExeCommand="&quot;[MYSQLINSTALLBINPATH]mysql.exe&quot; -u root --host=127.0.0.1 --port=5002 mysql --execute=&quot;SET GLOBAL innodb_fast_shutdown=0&quot;"
Return="check" Impersonate="yes"/>

...

<Custom Action="Innodb_slowshutdown" After="InstallInitialize">UPGRADEFOUND and NOT UPGRADINGPRODUCTCODE and NOT REINSTALL and MYSQLINSTALLBINPATH</Custom>
<RemoveExistingProducts After="Innodb_slowshutdown" />

但是这总是失败,我无法理解为什么当失败发生时我从 msiexec 日志复制确切的命令行并通过命令行运行它。

这完全符合我的预期,但我无法弄清楚自定义操作正在做什么不同的事情。

在安装过程中,控制台会短暂打开,MySQL 可执行文件似乎正在运行,但参数有问题,导致出现大量帮助信息,尽管我不能确定这到底是怎么回事。时间过得很快。

此时有什么方法可以暂停安装,以便我可以看到控制台中的内容吗?

任何人都可以看到我的 Wix 有任何明显的问题吗?

编辑-

另外,我不确定这是否与用户权限有关,我从打开“以管理员身份”的命令提示符运行 MSIEXEC,但如果我确实需要提升权限,当我需要执行类型为立即执行的操作?

请注意,我知道立即不允许提升权限,但我无法使用延迟,因为它不允许我在删除现有产品之前执行命令。

我什至不确定这是否与权利有关,我只是指出我认为这是一个可能的原因,但我无法证明这一点。

最佳答案

Windows Installer 不支持以提升的权限运行的即时自定义操作。要以提升的权限执行自定义操作,必须将其标记为 Deferred="yes"Impersonate="no"

关于mysql - 删除现有产品之前和之后的自定义操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18278911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com