mysql - 使用 inno setup 中的代码部分在 MySQL 中插入用户和密码

标签 mysql inno-setup

我的应用程序使用 MySQL 服务器。在执行以下操作的 inno 设置脚本中进行了详细说明:

在[代码]

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

在[运行]

  1. 使用批处理文件在用户表 MySQL 中输入用户和密码(好)
  2. 使用批处理文件创建数据库应用程序(好)
  3. 启动应用程序(确定)

脚本运行良好,但我希望 [run] 部分的第 1 项和第 2 项也在 [代码] 中执行,因此:

在[代码]

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

在[运行]

  1. 启动应用程序(确定)

但是第二种方案是在包含新用户和密码以及创建数据库时出错。在 [run] 中不会发生这种情况。

我在[code]中用来插入User和Password的代码如下:

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 使用参数 -e 接受 SQL 命令

命令应该是这样的

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

另外不要忘记设置root密码

关于mysql - 使用 inno setup 中的代码部分在 MySQL 中插入用户和密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16779810/

相关文章:

php - 将支付宝实现到 OpenCart

mysql - 从 AWS MYSQL 移动大表

mysql - 使用索引优化mysql查询

inno-setup - 当主安装程序(非常)静默运行时,子安装程序(非常)静默运行

inno-setup - Inno Setup : {code: . ..} 不适用于 OutputBaseFilename?

mysql - 连接行然后获得不同的值

java - 使用 Inno Setup native 打包 fx-jar 时出错 [fx :deploy] java. io.IOException

registry - 从 Windows 注册表获取 Office 应用程序的版本和平台

.net - .NET 4.0 是否随 Microsoft.Jet.OLEDB.4.0 一起提供?

mysql - 如何将二进制数据从 MySQL 转换为 ColdFusion 11 中的字符串?