使用inno设置中的代码部分在MySQL中插入用户和密码

时间:2013-05-27 20:01:46

标签: mysql inno-setup

我的应用程序使用MySQL Server。在inno设置脚本中详细说明了以下内容:

在[代码]

  1. 安装MySQL服务器(确定)
  2. 安装MySQL ODBC连接器(确定)
  3. 配置MySQL服务器(确定)
  4. 在Windows上启动MySQL服务(确定)
  5. 安装应用程序(确定)
  6. 在[run]

    1. 使用批处理文件在用户表MySQL(确定)
    2. 中输入用户和密码
    3. 使用批处理文件创建数据库应用程序(确定)
    4. 启动应用程序(确定)
    5. 脚本工作正常,但我希望[run]部分的第1和第2项也在[code]中执行:

      在[代码]

      1. 安装MySQL服务器(确定)
      2. 安装MySQL ODBC连接器(确定)
      3. 配置MySQL服务器(确定)
      4. 在Windows上启动MySQL服务(确定)
      5. 使用批处理文件在用户表MySQL(错误)
      6. 中输入用户和密码
      7. 使用批处理文件创建数据库应用程序(错误)
      8. 安装应用程序(确定)
      9. 在[run]

        1. 启动应用程序(确定)
        2. 但是第二种方案是包含新用户和密码以及数据库创建的错误。在[run]中,这不会发生。

          我在[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;
          

1 个答案:

答案 0 :(得分:0)

MySQL客户端mysql.exe使用参数-e

获取SQL命令

命令应如下所示

mysql -uroot -e"GRANT ALL PRIVILEGES ON *.* TO 'myusername'@'localhost' IDENTIFIED BY 'mypassword' WITH GRANT OPTION"

另外不要忘记设置root密码