场景:创建两个数据库,每个数据库创建几张表。导出全数据库的备份,导入一个数据库的方式:
---------------------------------------数据的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