我正在尝试制作一个静默安装 MySQL 的自定义安装程序,但我几天都遇到了同样的问题。安装 MySQL 服务器后,初始化失败,当我尝试输入密码时它立即关闭(这意味着密码设置错误,或者更糟糕的是,根本没有设置)。
这是安装程序的代码:
!define PRODUCT_NAME "Soft1" !define PRODUCT_VERSION "1.0" !define PRODUCT_PUBLISHER "Zaco"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.user SET Password=PASSWORD('New_Password') WHERE 用户='root'; 同花顺特权;
此外,如果尝试使用 MySQL 服务器实例配置向导配置服务器,它会让我选择这些选项,就好像安装程序中的初始化命令对服务器完全没有影响一样。
欢迎任何关于我如何解决这个问题的建议。
提前感谢您的关心!