Qt中使用QProcess备份和恢复Mysql数据库

2023-11-15

.
使用Qt做MySQL数据库开发,遇到需要备份、还原数据库的问题。
MySQL中没有提供将数据库备份成.sql文件的SQL语句,而是提供了一个mysqldump.exe工具来完成这个功能。
没有SQL语句,QSqlQuery就用不成了,决定改用QProcess实现。
.
但是在Qt中使用QProcess::execute()方法怎样都导不出数据来,
更郁闷的是在Qt提供的Qt Command Prompt命令行工具里都提示找不到mysqldump.exe程序,
刚开始我怀疑,莫非Qt就是不支持非Windows/System32目录指令之外的指令了?
.
上网搜索"qt 备份Mysql数据库",结果就发现问题的原因了。
这篇" Qt中使用QProcess::execute()时需要注意的问题"
写到,在Windows中的Qt程序使用QProcess::execute()方法,不能使用管道、重定向操作符,要有重定向操作符把内容重定向到文件或者从文件中读取输入的话,则需要设置QProcess对象的标准输入、输出文件为自己需要的文件。
.
一般来说Windows中使用的命令行程序很少有用到管道和重定向的,因为Windows的控制台本身不支持管道和重定向操作。
但这个mysqldump就是个特例,它需要将输出重定向到文件。
但是像QProcess::execute("mysqldump.exe -uUsrName -pUsrPsd DbName > d:/backup.sql")的函数是执行不了的,至少在windows里执行不出来。
.
从Qt4.2开始QProcess提供了 setStandardInputFile (), setStandardOutputFile (),  setStandardOutputProcess (). 三个函数来处理Windows中程序遇到管道和重定向问题,用start()方法替代execute()方法,然后使用 setStandardOutputFile ()等方式重定向输出或输入。
.
具体就是,应该将mysqldump操作写成下面这样:
 
相应的还原数据库操作应该写成这样:
 
总算解决问题,memo一下。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt中使用QProcess备份和恢复Mysql数据库 的相关文章

  • ActiveRecord3死锁重试

    Rails 3 或 ActiveRecord 3 是否有任何插件可以复制旧版本死锁重试 http agilewebdevelopment com plugins deadlock retry插入 或者 该插件仍然适用于 Rails 3 吗
  • 如何在 phpmyadmin 中创建 MySQL 触发器

    我想在 MySQL 中创建一个触发器 我运行以下命令 mysql gt delimiter mysql gt CREATE TRIGGER before insert money BEFORE INSERT ON money gt FOR
  • 无法运行 Qt 应用程序:找不到版本“Qt_5”

    我运行 Ubuntu 16 04 LTS 我的问题是我无法运行可以编译的 Qt5 应用程序 这是我尝试运行它时得到的结果 home user Desktop sconfig dist Release GNU Linux SCongif us
  • Qt QML 数据模型似乎不适用于 C++

    我一直在使用中的示例http doc qt digia com 4 7 qdeclarativemodels html http doc qt digia com 4 7 qdeclarativemodels html这是 QML 声明性数
  • 如何解决内存碎片

    我们偶尔会遇到这样的问题 长时间运行的服务器进程 在 Windows Server 2003 上运行 由于内存分配失败而引发异常 我们怀疑这些分配由于内存碎片而失败 因此 我们一直在寻找一些可能对我们有帮助的替代内存分配机制 我希望有人能告
  • 查询中列的顺序重要吗?

    当从 MySQL 表中选择列时 与表中的顺序相比 选择列的顺序是否会影响性能 不考虑可能覆盖列的索引 例如 您有一个包含行 uid name bday 的表 并且有以下查询 SELECT uid name bday FROM table M
  • Hibernate 对集合的查询过滤器

    我想执行以下查询 from Item i where i categoryItems catalogId catId 然而 这会产生以下异常 非法尝试取消引用集合 所以我用谷歌搜索 找到了这个 Hibernate 论坛帖子https for
  • 从命令行运行 R 代码 (Windows)

    我在名为 analysis r 的文件中有一些 R 代码 我希望能够从命令行 CMD 运行该文件中的代码 而无需通过 R 终端 并且我还希望能够传递参数并在我的代码中使用这些参数 例如就像下面的伪代码 C gt execute r scri
  • 以编程方式从 java 代码中查找 java.exe 的绝对路径

    如果我有一个由用户启动的 java jar 或类文件 假设在环境变量中设置了 java 路径 那么我如何从代码中找出 java exe javaw exe 的绝对路径文件正在启动 就像在 ubuntu 上一样 我们可以运行 which ja
  • 取消后调用 boost::asio 异步处理程序没有错误

    我的代码在单个线程中使用 boost asio 和 io service 来执行各种套接字操作 所有操作都是异步的 每个处理程序都依赖于boost system error code 特别boost asio error operation
  • MySQL 使用 ALTER IGNORE TABLE 出现重复错误

    我的 MySQL 中有一个有重复项的表 我尝试删除重复项并保留一项 我没有主键 我可以通过以下方式找到重复项 select user id server id count as NumDuplicates from user server
  • 如何正确转义mysql?

    我刚刚发现如果我写 select from tbl where name like foo 然后添加 foo 作为参数及其值 a 用户数据 它不会正确转义 我勒个去 它想要 a 即使我使用参数 我还是忍不住觉得我对 sql 注入持开放态度
  • 访问图像的 Windows“标签”元数据字段

    我正在尝试进行一些图像处理 所以现在我正在尝试读取图像 exif 数据 有 2 个内置函数可用于读取图像的 exif 数据 问题是我想读取图像标签 exifread and imfinfo这两个函数都不显示图像标签 Is there any
  • 在 Cygwin 软件包列表中找不到 Openssl

    这里说的是https github com joyent node wiki Building node js on Cygwin Windows https github com joyent node wiki Building nod
  • Apache、PHP 和 MySQL 可移植吗?

    我可以在外部硬盘上运行 Apache PHP 和 MySQL 吗 我需要这个 因为我在不同的地方工作 计算机 有时我没有安装和配置所有使用的应用程序 当然可以 XAMPP http www apachefriends org en xamp
  • 自定义波特率,redux

    我遇到的问题详述如下自定义波特率 https stackoverflow com questions 7714060 custom baud rate SetCommState 波特率 921600 失败 但波特率 115200 成功 尽管
  • 如何使用来自 Microsoft-Windows-NDIS-PacketCapture 提供程序的实时 ETW 事件?

    更大的问题是一般如何使用实时 ETW 网络堆栈事件 但我特别感兴趣Microsoft Windows NDIS PacketCapture 提供程序 所有其他网络堆栈提供程序都部分工作 但 NDIS PacketCapture NDIS P
  • 游戏内的java.awt.Robot?

    我正在尝试使用下面的代码来模拟击键 当我打开记事本时 它工作正常 但当我打开我想使用它的游戏时 它没有执行任何操作 所以按键似乎不起作用 我尝试模拟鼠标移动和点击 这些动作确实有效 有谁知道如何解决这个问题 我发现这个问题 如何在游戏中使用
  • MySQL 按重复项从上到下排序

    我有一个lammer问题 因为我不是mysql专业人士 我有类似的字段 id color 1 red 2 green 3 yellow 4 green 5 green 6 red 我想按重复项进行分组 最常见的重复项先进行分组 所以应该这样
  • 如何从Windows阻止社交媒体[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我想根据时间阻止我的电脑上的社交媒体 晚上 9 点后屏蔽 上午 11 点后解锁 如家长控制 我尝试过关注但失败了 创建了

随机推荐

  • Hadoop Hbase 升级

    Hadoop HDFS 与Hbase升级笔记 由于之前使用了hadoop1 0 2 hbase 使用的是hbase 0 92 1 但是一次事故导致元数据丢失 且修复元数据的类本身有BUG 所以摆在眼前的只有两条路 1 修改hbase源码重新
  • CNI Plugin 介绍

    CNI 插件包括两种类型 CNI Plugin 和 IPAM IP Address Management Plugin CNI Plugin 负责为容器配置网络资源 IPAM Plugin 负责对容器的 IP 地址进行分配和管理 IPAM
  • Mac 下配置 Python3 和 Selenium3 环境

    Selenium 是一套 Web 测试框架 Selenium2 中新增加了 Webdriver 可以用了测试 UI 层 控制浏览器执行爬虫等操作 而 chromedriver 是 Selenium 控制浏览的必要驱动 一 安装 seleni
  • CCP协议

    CCP协议 2021 11 12 标定流程 将标定数据保存在Flash中 在程序初始化过程中 标定数据映射至RAM当中 程序从RAM中调取数据 标定过程开始时 在上位机中建立Flash存储区镜像 并保存至HEX文件 标定过程中 通过DNLO
  • cookie中文乱码问题

    下面是写入cookie的代码 csharp view plain copy Cookie nameCookie new Cookie name 张三 nameCookie setMaxAge 60 60 24 30 response add
  • 多普勒超声波流量计工作原理及优缺点

    多普勒超声波流量计是是利用声波在流体中传播的多普勒效应 通过测定流体中运动粒子散射声波的多普勒频移 即可得到流体的速度 结合内置压力式水位计 利用速度面积法 即可测量液体的流量 适合于明渠 河道及难以建造标准断面的流速流量测量以及于各种满管
  • 河道堤防GNSS位移监测系统

    一 方案背景 我国河系众多 海岸线漫长 在江边 河边 海边修筑修筑着几万公里的提防设施保卫着沿江 沿海居民的生命安全 也保卫着经济发展的累累硕果 近年来 因台风暴雨造成河道堤坝决堤 产生的经济损失越来越大 各对方对防洪堤 海堤的安全检查要求
  • 【数据可视化】利用 Flourish 制作动态排名条形图(无需代码,超简单)

    利用 Flourish 制作动态排名条形图 一 Flourish 介绍 数据可视化不仅是一项技术 也是一门艺术 当然 数据可视化的工具也非常多 仅 Python 就有 matplotlib plotly seaborn bokeh 等多种可
  • ubuntu16.04,如何修改网卡名称为eth0?(转)

    一开始没有注意 输入ifconfig显示的是 ens33 lo 觉得没有影响 就是一个名字的事情 但是百度以后发下 强迫症 具体看知乎大佬的连接 https www zhihu com question 45796677 感谢 流沙 大佬
  • labuladong 公众号的使用方法

    先给大家说句抱歉 前段时间 labuladong 有些事情在忙 所以更新频率比较慢 以后就恢复正常了 自开号以来 labuladong 的算法文章开了 靠套路刷题 的先河 一直被模仿 从未被超越 GitHub 开源 fucking algo
  • Maven 安装和使用详解详解(windows 环境)

    目录 1 maven 安装步骤 1 从 Apache 官网下载 maven 压缩包 2 解压 maven 压缩包 即可使用 3 配置 maven 环境变量 方便全局使用 3 检测是否安装配置成功 2 Maven 使用详解 1 修改 sett
  • IntelliJ IDEA无法运行新建的java类,灰色运行标志【终于找到!!】

    问题 创建新类 但是就是不能运行 运行的按钮都是灰色的 只有下面默认的自带的main函数能够运行 鼠标右键找不到运行函数类似图二 但是这个错误首先请确保自己的JDK没有问题 如图 鼠标右键也找不到运行标志 结果发现 从c 过来的编译习惯 总
  • No2.7 前端面试题 1. token 2. 浏览器页面渲染的过程 3. SVG格式 4. 精灵图和base64

    1 token 什么是token token是验证身份的令牌 一般是用户通过账号密码登录后 服务端把这些凭证通过加密等一系列操作后得到的字符串 token都存在哪里 有什么区别 存localstorage里 后期每次请求接口时都需要把它当做
  • 索尼的hlg是什么_索尼HLG的使用方法

    近几年HLG的出现 让我们普通的摄影爱好者 可以直接的拍摄高动态范围的影像 尤其是小型的团队和独立的视频制作人 HLG能让我们在拍摄完素材够后 稍微调整就可以得到很不错的画面效果 能让我们省去很多后期调色的麻烦 这对于没有调色基础的摄影爱好
  • ABAP DIALOG 读取屏幕字段和tablecontrol内字段

    在POV事件中 因为没有经过PAI直接进入POV中的MODULE 所以直接调用屏幕中的字段并没有值 所以要 用DYNP VALUES READ读取屏幕字段的值 且读取的值格式为输入的格式 当使用DYNP VALUES READ时 所读取的屏
  • VMware vCenter Server远程代码执行漏洞复现 CVE-2021-21972

    文章来源 MS08067安全实验室 本文作者 Taoing WEB高级攻防班讲师 0x00 漏洞描述 CVE 2021 21972 vmware vcenter的一个未任意位置 然后执行webshell即可 0x01 影响版本 VMware
  • PyTorch学习之 torch.optim 的6种优化器及优化算法介绍

    import torch import torch nn functional as F import torch utils data as Data import matplotlib pyplot as plt import nump
  • 产品经理如何收集用户需求和痛点-新做市面上同类产品

    对于市面上已有同类产品 我们要做类似的产品 要使新做出来的产品有竞争力 首先需要深入了解客户需求和痛点 了解用户使用竞品的感受和痛点 在办公室冥想客户需求 并不靠谱 办公室做产品的结果 很多产品到客户那一用 才发现问题很多 很多实际情况没有
  • CiteSpace 的安装与使用 —— 入门

    下载 CiteSpace 是一种可视化的工具 在写论文的时候便于用来筛选对自己写文章有用的论文 CiteSpace 是一款免费的软件 可以直接到官网下载安装 注意 要配置 Java 环境才能使用 安装 下载后直接双击即可 双击打开应用 首先
  • Qt中使用QProcess备份和恢复Mysql数据库

    使用Qt做MySQL数据库开发 遇到需要备份 还原数据库的问题 MySQL中没有提供将数据库备份成 sql文件的SQL语句 而是提供了一个mysqldump exe工具来完成这个功能 没有SQL语句 QSqlQuery就用不成了 决定改用Q