MySQL静默安装(使用NSIS)工作不正常

MySQL静默安装(使用NSIS)工作不正常,mysql,nsis,silent-installer,Mysql,Nsis,Silent Installer,我正在尝试制作一个自定义安装程序,悄悄地安装MySQL,但几天来我都遇到了同样的问题。安装MySQL服务器后,初始化失败,因此当我尝试键入密码时,它会立即关闭(这意味着密码设置错误,甚至更糟,根本没有设置) 以下是安装程序的代码: 分段结束 my.ini文件的内容是从使用MySQL服务器实例配置向导手动安装和配置MySQL服务器后创建的my.ini文件复制而来的。mysql-init.txt包含以下代码: UPDATE mysql.user SET Password=PASSWORD(’Ne

我正在尝试制作一个自定义安装程序,悄悄地安装MySQL,但几天来我都遇到了同样的问题。安装MySQL服务器后,初始化失败,因此当我尝试键入密码时,它会立即关闭(这意味着密码设置错误,甚至更糟,根本没有设置)

以下是安装程序的代码:

分段结束


my.ini文件的内容是从使用MySQL服务器实例配置向导手动安装和配置MySQL服务器后创建的my.ini文件复制而来的。mysql-init.txt包含以下代码:

UPDATE mysql.user SET Password=PASSWORD(’New_Password’) WHERE User=’root’; FLUSH PRIVILEGES; 创建由密码“New_PASSWORD”标识的用户根目录; 授予**上的所有特权通过“新密码”和“授权”选项标识为“根”@“本地主机”

我还尝试将此代码用于mysql-init.txt,但得到了相同的结果:

ExpandEnvStrings $ComSpec %COMSPEC%

ExecWait '"$ComSpec" /S /C ""$PROGRAMFILES\MySQL\MySQL Server 5.1\bin\mysqld" --defaults-file = "$PROGRAMFILES\MySQL\MySQL Server 5.1\my.ini""'

ExecWait '"$ComSpec" /S /C ""$PROGRAMFILES\MySQL\MySQL Server 5.1\bin\mysqld" --init-file = "$PROGRAMFILES\MySQL\MySQL Server 5.1\mysql-init.txt""'
更新mysql.user SET Password=Password('New_Password') 其中User='root'; 同花顺特权; 此外,如果尝试使用MySQL服务器实例配置向导配置服务器,它会让我选择这些选项,就好像安装程序中的初始化命令对服务器没有任何影响一样

欢迎对我如何解决这个问题提出任何建议


提前感谢您的关注

我发现,当调用需要包含引号的参数的命令行应用程序时,最好使用/S参数调用cmd.exe,并将命令行本身作为参数传递。因此,使用您的示例,您可以使用以下内容:


我发现,当调用需要包含引号的参数的命令行应用程序时,最好使用/S参数调用cmd.exe,并将命令行本身作为参数传递。因此,使用您的示例,您可以使用以下内容:


我也尝试过使用你的解决方案,但它不起作用。我的问题似乎是使用mysqld造成的。我试图安装MySQL服务器,不进行配置,然后在cmd中键入上述命令,但它也不起作用。因此,我猜my.ini和mysql-init.txt包含错误的信息,或者我尝试使用msqld it的方式是错误的。欢迎提出任何建议!我也尝试过使用你的解决方案,但它不起作用。我的问题似乎是使用mysqld造成的。我试图安装MySQL服务器,不进行配置,然后在cmd中键入上述命令,但它也不起作用。因此,我猜my.ini和mysql-init.txt包含错误的信息,或者我尝试使用msqld it的方式是错误的。欢迎提出任何建议! UPDATE mysql.user SET Password=PASSWORD(’New_Password’) WHERE User=’root’; FLUSH PRIVILEGES;
ExpandEnvStrings $ComSpec %COMSPEC%

ExecWait '"$ComSpec" /S /C ""$PROGRAMFILES\MySQL\MySQL Server 5.1\bin\mysqld" --defaults-file = "$PROGRAMFILES\MySQL\MySQL Server 5.1\my.ini""'

ExecWait '"$ComSpec" /S /C ""$PROGRAMFILES\MySQL\MySQL Server 5.1\bin\mysqld" --init-file = "$PROGRAMFILES\MySQL\MySQL Server 5.1\mysql-init.txt""'