使用 QProcess 恢复 MySQL 数据库,不能真正使用像“<”这样的简单重定向

Posted

技术标签:

【中文标题】使用 QProcess 恢复 MySQL 数据库,不能真正使用像“<”这样的简单重定向【英文标题】:Restoring MySQL database with QProcess , can't really work with simple redirect like '<' 【发布时间】:2011-10-05 14:43:43 【问题描述】:

所以首先通过 QFileDialog 检索文件名,进入 fName ,然后:

  QProcess *proc = new QProcess ();
  QStringList arguments;
  arguments << "-u" << "USER_NAME"
            << "-pPASS_WORD" << "<"
              << fName;
#ifdef WIN32
    proc->start("mysql.exe" , arguments);
#else
    proc->start("mysql" , arguments);
#endif

但这只是行不通,我总是看到“mysql --help”的输出,似乎 提供了错误的参数。但是,手动执行这项工作。

【问题讨论】:

【参考方案1】:

您不应该使用参数重定向标准输入。请改用setStandartInputFile(const QString & fileName)。

【讨论】:

以上是关于使用 QProcess 恢复 MySQL 数据库,不能真正使用像“<”这样的简单重定向的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 上使用 QProcess 读取 GDAL /vsistdout/

使用 QProcess 启动 pg_dumpall 时不起作用

Qt - 如何将“更多”数据写入 QProcess?

MySQL数据库的恢复-mysql数据库的恢复

mysql恢复数据mysqlbinlog

QProcess 终止进程树