【发布时间】:2011-11-29 00:26:58
【问题描述】:
我正在尝试制作一个可以静默安装 MySQL 的自定义安装程序,但几天来我都遇到了同样的问题。安装 MySQL 服务器后,初始化失败,当我尝试输入密码时它立即关闭(意味着密码设置错误,或者更糟糕的是,根本没有设置)。
这是安装程序的代码:
SetCompressor lzma
!包括“MUI2.nsh”
!define MUI_ABORTWARNINGS !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico" !define MUI_WELCOMEPAGE_TEXT "欢迎 txt"
!insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Lic.txt" !insertmacro MUI_PAGE_COMPONENTS !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_PAGE_FINISH
!insertmacro MUI_LANGUAGE "英语"
名称“${PRODUCT_NAME} ${PRODUCT_VERSION}” 输出文件“Soft1.exe” 安装目录“$PROGRAMFILES\Soft1” ShowInstDetails 展示
部分 - 设置 SetOutPath "$INSTDIR" SetOverwrite ifnewer 部分结束
“MySQL”SEC_01 部分
File mysql.msi
ExecWait 'msiexec /i "$INSTDIR\mysql.msi" /quiet'
SetOutPath "$PROGRAMFILES\MySQL\MySQL Server 5.1"
File my.ini
File mysql-init.txt
ExecWait '"$PROGRAMFILES\MySQL\MySQL Server 5.1\bin\mysqld" --defaults-file = "$PROGRAMFILES\MySQL\MySQL Server 5.1\my.ini" '
ExecWait '"$PROGRAMFILES\MySQL\MySQL Server 5.1\bin\mysqld" --init-file = "$PROGRAMFILES\MySQL\MySQL Server 5.1\mysql-init.txt" '
ExecWait "Net Start MySQL"
部分结束
my.ini 文件的内容是从使用 MySQL 服务器实例配置向导手动安装和配置 MySQL 服务器后创建的 my.ini 文件复制而来的。 mysql-init.txt 包含以下代码:
CREATE USER root IDENTIFIED BY PASSWORD 'New_Password'; 授予 * 上的所有特权。 * TO 'root'@'localhost' IDENTIFIED BY 'New_Password' WITH GRANT OPTION ;
我也尝试将此代码用于 mysql-init.txt,但得到相同的结果:
此外,如果尝试使用 MySQL 服务器实例配置向导配置服务器,它会让我选择这些选项,就好像安装程序中的初始化命令对服务器完全没有影响一样。
欢迎任何有关我如何解决此问题的建议。
提前感谢您的关注!
【问题讨论】:
标签: mysql nsis silent-installer