说明: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