教学之友,学习之友。

站长教学网

当前位置: 站长教学网 > 数据库 > MYSQL教程 >

MySQL数据库如何备份和还原几种方法详解(3)

时间:2012-03-27 23:08来源:未知 作者:ken 点击:
  

3、 SQL 语法备份

  3.1 备份

  BACKUP TABLE 语法其实和 mysqlhotcopy 的工作原理差不多,都是锁表,然后拷贝数据文件。它能实现在线备份,但是效果不理想,因此不推荐使用。它只拷贝表结构文件和数据文件,不同时拷贝索引文件,因此恢复时比较慢。例子:

  BACK TABLE tbl_name TO '/tmp/db_name/';

  注意,必须要有 FILE 权限才能执行本SQL,并且目录 /tmp/db_name/ 必须能被 mysqld 用户可写,导出的文件不能覆盖已经存在的文件,以避免安全问题。

  SELECT INTO OUTFILE 则是把数据导出来成为普通的文本文件,可以自定义字段间隔的方式,方便处理这些数据。

  例子:

  SELECT INTO OUTFILE '/tmp/db_name/tbl_name.txt' FROM tbl_name;

  注意,必须要有 FILE 权限才能执行本SQL,并且文件 /tmp/db_name/tbl_name.txt 必须能被 mysqld 用户可写,导出的文件不能覆盖已经存在的文件,以避免安全问题。

  3.2 恢复

  用 BACKUP TABLE 方法备份出来的文件,可以运行 RESTORE TABLE 语句来恢复数据表。例子: RESTORE TABLE FROM '/tmp/db_name/';权限要求类似上面所述。

  用 SELECT INTO OUTFILE 方法备份出来的文件,可以运行 LOAD DATA INFILE 语句来恢复数据表。例子:

  LOAD DATA INFILE '/tmp/db_name/tbl_name.txt' INTO TABLE tbl_name;

  权限要求类似上面所述。倒入数据之前,数据表要已经存在才行。如果担心数据会发生重复,可以增加 REPLACE 关键字来替换已有记录或者用 IGNORE 关键字来忽略他们。

  补充:

  shell> mysqldump --quick db_name | gzip > db_name.contents.gz

  (该例子中创建的文件是压缩格式)。

  恢复/转移到另一台的命令如下:

  shell> gunzip < db_name.contents.gz | mysql db_name

  以上命令,适用于*nix 操作系统的机器

(责任编辑:ken)

TAG标签: mysql 备份 还原 数据库
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
注册登录:不允许匿名留言,登录后留言无需输入验证码。
栏目列表
最新内容