说明:mysqldump是数据库用来备份和数据转移的一个工具,一般在数据量很小的时候(几个G)可以用于备份。当数据量比较大的情况下,就不建议用mysqldump工具进行备份了;mysqldump是一个很好用的mysql数据转移工具,具有兼容强强、跨版本等特点;

一、数据库的导出

导出对象说明:

mysqldump可以针对单个表、多个表、单个数据库、多个数据库、所有数据库进行导出的操作

shell> mysqldump [options] db_name [tbl_name ...] //导出指定数据库或单个表

shell> mysqldump [options] --databases db_name ... //导出多个数据库

shell> mysqldump [options] --all-databases //导出所有

 

导出选项:在操作系统运行 mysqldump --help即可查看mysqldump的所有可选选项,以下是常用的选项介绍

 

 

--all-databases, -A: 备份所有数据库

--databases, -B: 用于备份多个数据库,如果没有该选项,mysqldump 把第一个名字参数作为数据库名,后面的作为表名。使用该选项,mysqldump 把每个名字都当作为数据库名。

--force, -f:即使发现sql错误,仍然继续备份

--host=host_name, -h host_name:备份主机名,默认为localhost

--no-data, -d:只导出表结构

--password[=password], -p[password]:密码

--port=port_num, -P port_num:制定TCP/IP连接时的端口号

--quick, -q:快速导出

--tables:覆盖 --databases or -B选项,后面所跟参数被视作表名-

--user=user_name, -u user_name:用户名

--xml, -X:导出为xml文件
 

 

1、导出数据库为test下面表名为b的数据

mysqldump -uroot -h 127.0.0.1  test b > b_test.sql

 

2、导出数据库为test的所有数据

mysqldump -uroot -h 127.0.0.1 test >test.sql

 

3、导出数据库名为test和retail的数据库

mysqldump -uroot -h 127.0.0.1  -B test retail > /data/db.sql

 

4、导出所有的数据库

mysqldump -uroot -h127.0.0.1 -A > /data/all.sql

 

5、导出数据库的结构(以上脚本添加选项 -d)

mysqldump -uroot -h 127.0.0.1  test b  -d> b_test.sql   

 

二、数据库的导入

1、导入的方式

mysql命令行导入:

mysql> source /data/test.sql

系统命令行导入:

mysql -uroot -p </data/test.sql

 

2、还原单个数据库(需指定数据库)

mysql >use test

mysql >source /data/test.sql

 

3、还原多个数据库(不需要指定数据库)

mysql -uroot -p </data/all.sql