mysqldump备份所有数据库,恢复单个库的场景预演

青春壹個敷衍的年華 提交于 2019-11-28 21:07:54

mysqldump备份所有数据库,恢复单个库的场景预演

分类: Mysql/postgreSQL

2016-01-11 17:25:31

 

场景:创建两个数据库,每个数据库创建几张表。导出全数据库的备份,导入一个数据库的方式:

---------------------------------------数据的demo--------------------------------------------------
create database zsddb;
use zsddb;

create table t1(id int(10));
create table t2(id int(10));
INSERT INTO t1 (id) VALUES (2);
INSERT INTO t2 (id) VALUES (2);

create database hdoa;
use hdoa;
create table hd1(id int(10));
create table hd2(id int(10));
INSERT INTO hd1 (id) VALUES (2);
INSERT INTO hd2 (id) VALUES (2);
create table hd3(username varchar(10));
INSERT INTO hd3 (username) VALUES ('张');
------------------------------------数据的备份导出---------------------------------------------------

/arp/mysql/bin/mysqldump 的命令详解如下:

介绍上述的命令:
--all-databases, -A   :导出所有数据库
--routines, -R        :导出存储过程和函数
--extended-insert, -e :导出的insert语句使用multiple-row的语法方式,记录多个值。保证较小的dump文件,和导入的时候速度更快。
--single-transaction  :对于innodb引擎来说,导出会建立一次性的快照。保证导出操作放在同一个事务里面。
--force, -f           :即使遇到SQL错误,也强制导出dump文件
--lock-all-tables, -x :把整个数据库进行锁表操作,在整个导出的过程中会获取一个全局读锁,这个选线会自动
                       关闭 --single-transaction和 --lock-tables选项
--databases, -B       :导出多个数据库
--default-character-set=utf8 :设置导出默认字符集为xxx,这里是utf8

有上述命令解释,写出属于自己风格的mysqldump命令,如下所示:
/arp/mysql/bin/mysqldump -usystem -parpc7101 -S /arp/mysql/data/3306/mysql.sock -A -R -f -x -e | gzip >/arp/mysql/backup/mysql_full_backup_2016_1_11_1648.sql.gz

----------------------------------数据的导入操作-----------------------------------------------------
/arp/mysql/bin/mysql  的命令详解如下:

--one-database, -o   : 只导入一个所需的那个数据库,其他语句忽视。

前提:经测试,必须有此数据库才行:如下

##进入数据库
mysql -usystem -parpc7101

##创建所需数据库
(system@localhost) [(none)]> create database hdoa;

##导入数据库操作
mysql -usystem  -p hdoa -o  < /arp/mysql/backup/mysql_full_backup_2016_1_11.sql

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!