nsis 2无法更改mysql密码/运行sql脚本

时间:2013-12-19 11:17:46

标签: mysql passwords nsis

我在SQL中有脚本:

UPDATE mysql.user SET password=PASSWORD("my-new-password") WHERE User='root';
FLUSH PRIVILEGES;

安装MySQL之后我想执行它。我正在尝试

ExecCmd::exec '"cmd.exe" /C "$instaldir\MySQL\bin\mysql.exe" -uroot < "C:\passwd.sql"'

StrCpy $sql_file ""C:\passwd.sql"
ExecWait '"cmd.exe" /C "$instaldir\MySQL\bin\mysql.exe" -uroot < $sql_file'

但它不起作用: - (

3 个答案:

答案 0 :(得分:0)

你不需要添加cmd.exe,exec和execwait都可以。

试试这个:

ExecCmd::exec '"$instaldir\MySQL\bin\mysql.exe" -uroot < "C:\\passwd.sql"'

答案 1 :(得分:0)

这似乎有效!

  StrCpy $sql_file "$temp\ampp\passwd.sql"
  ExecWait '"cmd.exe" /C "C:\Program Files\AMPP\MySQL\bin\mysql.exe" -uroot < $sql_file' $0 ; changes root password
  MessageBox MB_OK $0

答案 2 :(得分:-1)

我做到了 添加环境变量mysql的路径------你可以从nsis添加...使用插件....否则手动执行 在nsis脚本的顶部添加 - &gt; RequestExecutionLevel admin以作为系统管理员运行 然后设置一个新密码添加一个脚本 - &gt; nsExec :: Exec / TIMEOUT = 10000&#34; mysqladmin -u root密码newpassword&#34; 如果您需要更改密码,请添加 - &gt; nsExec :: Exec / TIMEOUT = 10000&#34; mysqladmin -u root -p&#39; oldpassword&#39;密码newpassword&#34; (忽略&#39;用于旧密码的报价)