我在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'
但它不起作用: - (
答案 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;用于旧密码的报价)