利用mysqldump备份数据库

mysqldump是sql级别的备份机制,它将数据表导成sql脚本文件,是非常常用的备份方法。

下面整理了mysqldump的用法和几个常用参数。

基本用法:

mysqldump -u用户名 -p密码 -h主机 数据库 表 > 文件名

如果想导出整个库,不加表名即可。

例:

mysqldump -uroot -h10.1.153.23 achievement black > black.dump


常用选项:
1. --all-databases
导出所有数据库
例:

mysqldump -uroot -h10.1.153.23 --all-databases > all.dump


2.--default-character-set=name
设置默认字符集
导入导出时最好都加上这个选项,我就遇到过在不同版本的mysql间导数据,因为没有加此选,导入时提示sql有语法错误的情况。
例:

mysqldump -uroot -h10.1.153.23 --default-character-set=utf8 achievement black > black.dump


3. --complete-insert
导出的数据采用包含字段名的完整INSERT方式。
例:
如果在不加该选项时,导出数据中的一条是如下形式:

INSERT INTO `category` VALUES (1,'动作','2012-07-20 04:12:23');

加了该选项后,此数据在dump文件中的形式如下:

INSERT INTO `category` (`id`, `name`, `ctime`) VALUES (1,'动作','2012-07-20 04:12:23');

可能的应用场景:
A库中category表的数据导入B库,但B库的category表新加了validate字段。此时,A库的category表在mysqldump时如果不加--complete-insert选项则无法导入Bcategory表,会提示列数不同的错误。

4. --no-create-info
只导出数据,而不添加CREATETABLE语句

5. --where

where条件导出数据
例:

mysqldump -uroot -h10.1.153.22 hao_game category --where "validate=2"

只导出validate2的数据。

你可能感兴趣的:(MysqlDump)