mysql数据库热备份和导出导入数据表

tzg_dzq 2011-05-03 04:26:35
数据库:mysql5.1,
语言:c++

在c++下,
如何热备份数据库?

如何导出导入表数据?

谢谢?
...全文
99 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
tzg_dzq 2011-05-19
  • 打赏
  • 举报
回复
谢谢各位的提示,
现在没有好的办法,
就怎么着吧。
iihero 2011-05-05
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 tzg_dzq 的回复:]

我是这么做的:int ret = mysql_real_query(&m_mysql,strMid.c_str(),strMid.size());
strMid = "SELECT * FROM testtab1 INTO OUTFILE 'E:\\dzq\\testdata\\zzzzz.txt' FIELDS TERMINATED BY ',\t' LINES TERMINATED……

我利用系统函数system来执行命令:mysqldump -uroot -p1234 db1 > back.sql
虽然能成功,但当数据多时,dos窗口会停留一会儿,不太好,
不知有什么更好的办法没有?
[/Quote]
只要该窗口能退出就好。
tzg_dzq 2011-05-04
  • 打赏
  • 举报
回复
我是这么做的:int ret = mysql_real_query(&m_mysql,strMid.c_str(),strMid.size());
strMid = "SELECT * FROM testtab1 INTO OUTFILE 'E:\\dzq\\testdata\\zzzzz.txt' FIELDS TERMINATED BY ',\t' LINES TERMINATED BY '\r\n'";


这个错误找到了,原因:
把:'E:\\dzq\\testdata\\zzzzz.txt'
改为:'E:/dzq/testdata/zzzzz.txt'
但不知为什么要把\改为/,不明白。
我是利用接口mysql_error的返回值发现的,挺有用的。


问题:
mysqldump -uroot -p1234 db1 > back.sql
在c++中如何执行上面的shell命令呢?
tzg_dzq 2011-05-04
  • 打赏
  • 举报
回复
我利用系统函数system来执行命令:mysqldump -uroot -p1234 db1 > back.sql
虽然能成功,但当数据多时,dos窗口会停留一会儿,不太好,
不知有什么更好的办法没有?
加油馒头 2011-05-03
  • 打赏
  • 举报
回复
C++中调用cmd 命令行,实现导入导出‘

实际上就是使用的mysql自带的命令
ACMAIN_CHM 2011-05-03
  • 打赏
  • 举报
回复
[Quote]在c++中如何执行上面的shell命令呢?[/Quote]C++中如何执行操作系统批命令?这个你可以查询一下你的C++手册,与你的操作系统有关。
ACMAIN_CHM 2011-05-03
  • 打赏
  • 举报
回复
[Quote]可出错,
在c++中该如何执行上面的语句呢?[/Quote]错误信息是什么?


tzg_dzq 2011-05-03
  • 打赏
  • 举报
回复
我是这么做的:int ret = mysql_real_query(&m_mysql,strMid.c_str(),strMid.size());
strMid = "SELECT * FROM testtab1 INTO OUTFILE 'E:\\dzq\\testdata\\zzzzz.txt' FIELDS TERMINATED BY ',\t' LINES TERMINATED BY '\r\n'";

可出错,
在c++中该如何执行上面的语句呢?

函数mysql_real_query为什么不能执行此语句呢?


可以调用C中的SHELL来直接运行操作系统命令。

mysqldump -uroot -p1234 db1 > back.sql
在c++中如何执行上面的shell命令呢?

ACMAIN_CHM 2011-05-03
  • 打赏
  • 举报
回复
[Quote]如何导出导入表数据?[/Quote]导出表

按1楼的方法用SELECT INTO OUTFILE和LOAD DATA加载即可。

具体请参考一下MYSQL的帮助手册。
ACMAIN_CHM 2011-05-03
  • 打赏
  • 举报
回复
[Quote]在c++下,
如何热备份数据库?[/Quote]可以调用C中的SHELL来直接运行操作系统命令。

mysqldump -uroot -p1234 db1 > back.sql
tzg_dzq 2011-05-03
  • 打赏
  • 举报
回复
我要在c++中调用mysql的c api函数来实现。

如下语句是把表testtab1的数据导出到'E:\\dzq\\testdata\\zzzzz.txt' 中,
我是这么做的:int ret = mysql_real_query(&m_mysql,strMid.c_str(),strMid.size());
strMid = "SELECT * FROM testtab1 INTO OUTFILE 'E:\\dzq\\testdata\\zzzzz.txt' FIELDS TERMINATED BY ',\t' LINES TERMINATED BY '\r\n'";

ret = 1,可执行失败。
为什么?

如何用mysqldump?


rucypli 2011-05-03
  • 打赏
  • 举报
回复
建议还是在slave做mysqldump操作来做备份库
导入导出表直接用select * into outfile='' from tb
load data

56,940

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧