因为MySQL表保存为文件方式,很容易备份。要想保持备份的一致性,对相关表执行LOCK TABLES操作,然后对表执行FLUSH TABLES。你只需要读锁定;这样当你复制数据库目录中的文件时,允许其它客户继续查询表。需要FLUSH TABLES语句来确保开始备份前将所有激活的索引页写入硬盘。
如果你想进行SQL级别的表备份,你可以使用select into/outfile 或者backup table .对于select into ...outfile, 输出的文件不能先存在。对于backup table也如此,因为覆盖完整的文件会有安全风险。
备份数据库的另一个技术是使用mysqldump程序 或者mysqlhotcopy脚本。
这篇文章简单介绍下mysqldump的使用方法以及在Qt中的应用。
有3种方式来调用mysqldump:
shell> mysqldump [options] db_name [tables]
shell> mysqldump [options] ---database DB1 [DB2 DB3...]
shell> mysqldump [options] --all--database
如果没有指定任何表或使用了---database或--all--database选项,则转储整个数据库。
要想获得你的版本的mysqldump支持的选项,执行mysqldump ---help。
mysqldump支持下面的选项:
· --help,-?
显示帮助消息并退出。
· --add-drop--database
在每个CREATE DATABASE语句前添加DROP DATABASE语句。
·