使用mysqldump导出数据库(表)

mysqldump用来备份数据库或在不同数据库之间迁移数据,mydqldump的备份内容包括用来创建表和装载表的SQL语句。

一、mysqldump使用方法

(1)、备份单个数据库或数据库中的部分表,使用mysqldump导出之前,会锁定表的写操作,当数据导出完成后,锁被释放。

shell> mysqldump [options] db_name [table_name]

(2)、备份指定的一个或多个数据库

shell> mysqldump [options] --database DB1 [DB2,DB3,...]
shell> mysqldump [options] -B DB1 [DB2,DB3,...]

(3)、备份服务器上的所有数据库

shell> mysqldump [options] --all-database
shell> mysqldump [options] -A

二、mysqldump主要参数

-u,--user=username              # 指定用户名
-p,--password=password          # 指定密码
-h,--host=hostname              # 指定服务器ip
-P,--port=port                  # 指定连接端口
--add-drop-database             # 在每个数据库创建语句前加上drop database语句
--add-drop-table                # 在每个表创建语句前加上drop table语句

-n,--no-create-db               # 不包括数据库的创建语句
-t,--no-create-info             # 不包括数据表的创建语句
-d,--no-data                    # 不包括数据

--compact                       # 输出更为简洁,不包括各种注释语句
-c,--complete-insert            # 使输出文件中的insert语句包括字段名称,默认不包括字段名称

-F,--flush-logs                 # 备份前刷新日志
-l,--lock-tables                # 备份期间对所有表加锁

--help mysqldump                # 命令帮助

三、字符集选项

--default-character-set选项可以设置导出的客户端字符集,这个选项在导出数据库的时候非常重要,如果客户端字符集和数据库字符集不一致,数据库在导出的时候就可能需要字符集转换,将数据库字符集转换为客户端字符集,讲过转换后的数据可能变成乱码或“?”等特殊字符,使得备份文件无法恢复。

四、mysqldump实战

(1)、备份test数据库下的city表

# mysqldump -uroot -p test city > city.txt 

(2)、由于客户端和服务器的字符集不一致,导出文件变成乱码,导致无法导入,见如下截图:

# mysqldump -uroot -p  --default-character-set=latin1 test city > city.txt 

(3)、使用-c参数,使得insert into语句中增加了表的列名,见如下截图:

# mysqldump -uroot -p -c test city > city.txt

(4)、加了-d参数,使得mysqldump只导出了city表的表结构,表数据未被导出,见如下截图:

# mysqldump -uroot -p -d test city > city.txt 

猜你喜欢

转载自www.linuxidc.com/Linux/2016-07/133246.htm