使用inno设置中的代码部分在MySQL中插入用户和密码
我的应用程序使用MySQL服务器。在inno安装脚本中详细说明,该脚本执行以下操作: [代码]中的使用inno设置中的代码部分在MySQL中插入用户和密码,mysql,inno-setup,Mysql,Inno Setup,我的应用程序使用MySQL服务器。在inno安装脚本中详细说明,该脚本执行以下操作: [代码]中的 安装MySQL服务器(确定) 安装MySQL ODBC连接器(正常) 配置MySQL服务器(确定) 在Windows上启动MySQL服务(确定) 安装应用程序(确定) 在[运行]中 使用批处理文件在用户表MySQL中输入用户和密码(确定) 使用批处理文件创建数据库应用程序(确定) 启动应用程序(确定) 脚本运行良好,但我希望[run]部分的第1项和第2项也在[code]中执行,因此: [代码]中的
if (CurStep = ssInstall) then
begin WizardForm.ProgressGauge.Style: = npbstMarquee; WizardForm.StatusLabel.Caption: = 'Starting service MySQL on Windows. This may take a few minutes ... ';
if not Exec (ExpandConstant ('{pf} \ MySQL \ MySQL Server 5.5 \ bin \ mysqld.exe'), 'mysql-u root GRANT ALL PRIVILEGES ON *. * TO myusername @ localhost IDENTIFIED BY mypassword WITH GRANT OPTION;' '', SW_HIDE, ewWaitUntilTerminated, ResultCode) then
MsgBox ('The MySQL service failed. Code:' + IntToStr (ResultCode) mbInformation, MB_OK);
WizardForm.ProgressGauge.Style: = npbstNormal; WizardForm.StatusLabel.Caption: ='';
end;
MySQL客户端MySQL.exe使用param
-e
命令应该是这样的
mysql -uroot -e"GRANT ALL PRIVILEGES ON *.* TO 'myusername'@'localhost' IDENTIFIED BY 'mypassword' WITH GRANT OPTION"
也别忘了设置根密码你好,Barranka,谢谢你的回复,但是代码不起作用。我添加了“-e”和“-p”,如下所示:'mysql-u root-p-e'+AddQuotes('GRANT ALL PRIVILEGES ON.TO')myusername@localhost我想下面的代码应该是正确的,在myusername、localhost和mypassword之间有符号('),但inno安装程序不接受它,因为它感觉参数太多了mysql-u root-p-e'+AddQuotes('使用GRANT选项将*.*上的所有权限授予'myusername'@'localhost'以'mypassword'标识;'))如果无法直接在字符串中硬编码值,则需要使用+运算符将变量与字符串常量连接起来。