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數據庫