mysqldump备份全部数据库,恢复单个库的场景预演html
分类: Mysql/postgreSQLmysql
2016-01-11 17:25:31sql
场景:建立两个数据库,每一个数据库建立几张表。导出全数据库的备份,导入一个数据库的方式:
---------------------------------------数据的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数据库