場景:建立兩個資料庫,每個資料庫建立幾張表。導出全資料庫的備份,導入一個資料庫的方式:
---------------------------------------資料的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