• 9178阅读
  • 9回复

QProcess运行mysqldump备份数据库时不生成备份文件。 [复制链接]

上一主题 下一主题
离线yzpdsg
 

只看楼主 倒序阅读 楼主  发表于: 2010-05-22
我的想法是通过运行一个进程来进行数据库的备份,但是执行后没有备份文件生成,不知是哪里出了问题。
UserName、PassWord、Serverip和directory已经在前面正确获取了

void QMySQLBackup::sqlBack()
{
    QString dt = QDateTime::currentDateTime().toString();
    QString Cmd = QString("C:\\Program Files\\MySQL\\MySQL Server 5.1\\bin\\mysqldump.exe -u%1 -p%2 -h%3 medicine").arg(UserName).arg(PassWord).arg(Serverip);
    QString Path = QString("/%4/%5.sql").arg(directory).arg(QTime::currentTime().toString());
    QProcess *poc=new QProcess;
    poc->setStandardOutputFile(Path);
    poc->start(Cmd);
    //int backNum = 5;
    //ui->progressBar->setRange(0,100);
};
离线paranoid
只看该作者 1楼 发表于: 2010-05-22
先在命令行里确认你的输入没有问题,你的-u -h都没有空格就跟参数,这样没问题么?
离线yzpdsg

只看该作者 2楼 发表于: 2010-05-22
没有问题,一般的命令是mysqldump -uroot -p123456 medicine > medicine.sql。
离线yzpdsg

只看该作者 3楼 发表于: 2010-05-23
没人知道吗?
离线yzpdsg

只看该作者 4楼 发表于: 2010-05-23
今天又看了一下,toolButton得到的路径是C:/Users/phoenix,这个路径中的斜线正确吗?我记得Windows下的路径都是用反斜线“\”隔开的,是不是这里出了问题?
离线yzpdsg

只看该作者 5楼 发表于: 2010-05-24
依旧等待高人出现。
离线qkwqkw

只看该作者 6楼 发表于: 2010-07-31
我也是按照这个办法写的代码,但是输出的文件大小为0,不知道为什么?正在寻找答案呢!!
离线uidab

只看该作者 7楼 发表于: 2016-02-01
最近也遇到了这个问题,答案是这样调用管道输出不行。
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线stlcours

只看该作者 8楼 发表于: 2016-02-01
回 uidab 的帖子
uidab:最近也遇到了这个问题,答案是这样调用管道输出不行。 (2016-02-01 09:44) 

我在CSDN上看到过解决方案,有个小技巧在里面。
离线XChinux

只看该作者 9楼 发表于: 2016-02-16
  1.     QString strExe("C:\\Program Files\\MySQL\\MySQL Server 5.6\\bin\\mysqldump.exe");
  2.     QStringList slArg;
  3.     slArg << "-h" << "127.0.0.1" << "-u" << "root" << "-p123456" << "zmwww";
  4.     QProcess proc;
  5.     proc.setStandardOutputFile("D:\\zmwww.sql");
  6.     proc.start(strExe, slArg);
  7.     proc.waitForFinished();
  8.     proc.close();


试验成功。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个