天天看點

資料庫的備份與恢複 - yeyu1314

資料庫的備份與恢複

一、使用mysqldump導出/導入sql資料檔案

二、使用infile/outfile導入/導出txt/csv資料檔案

———————————————-庫操作———————————————-

1.①導出一個庫結構

mysqldump -d dbname -u root -p > xxx.sql

②導出多個庫結構

mysqldump -d -B dbname1 dbname2 -u root -p > xxx.sql

2.①導出一個庫資料

mysqldump -t dbname -u root -p > xxx.sql

②導出多個庫資料

mysqldump -t -B dbname1 dbname2 -u root -p > xxx.sql

3.①導出一個庫結構以及資料

mysqldump dbname1 -u root -p > xxx.sql

②導出多個庫結構以及資料

mysqldump -B dbname1 dbname2 -u root -p > xxx.sql

———————————————-表操作———————————————-

4.①導出一個表結構

mysqldump -d dbname1 tablename1 -u root -p > xxx.sql

②導出多個表結構

mysqldump -d -B dbname1 --tables tablename1 tablename2 -u root -p > xxx.sql

5.①導出一個表資料

mysqldump -t dbname1 tablename1 -u root -p > xxx.sql

②導出多個表資料

mysqldump -d -B dbname1 --tables tablename1 tablename2 -u root -p > xxx.sql

6.①導出一個表結構以及資料

mysqldump dbname1 tablename1 -u root -p > xxx.sql

②導出多個表結構以及資料

mysqldump -B dbname1 --tables tablename1 tablename2 -u root -p > xxx.sql

————————————–存儲過程&函數操作————————————-

7.隻導出存儲過程和函數(不導出結構和資料,要同時導出結構的話,需要同時使用-d)

mysqldump -R -ndt dbname1 -u root -p > xxx.sql

———————————————-事件操作———————————————-

8.隻導出事件

mysqldump -E -ndt dbname1 -u root -p > xxx.sql

—————————————–觸發器操作——————————————–

9.不導出觸發器(觸發器是預設導出的–triggers,使用–skip-triggers屏蔽導出觸發器)

mysqldump --skip-triggers dbname1 -u root -p > xxx.sql

————————————————————————————————

10.導入

source xxx.sql

————————————————————————————————

總結一下:

-d 結構(--no-data:不導出任何資料,隻導出資料庫表結構)

-t 資料(--no-create-info:隻導出資料,而不添加CREATE TABLE 語句)

-n (--no-create-db:隻導出資料,而不添加CREATE DATABASE 語句)

-R (--routines:導出存儲過程以及自定義函數)

-E (--events:導出事件)

--triggers (預設導出觸發器,使用--skip-triggers屏蔽導出)

-B (--databases:導出資料庫清單,單個庫時可省略)

--tables 表清單(單個表時可省略)

①同時導出結構以及資料時可同時省略-d和-t

②同時 不 導出結構和資料可使用-ntd

③隻導出存儲過程和函數可使用-R -ntd

④導出所有(結構&資料&存儲過程&函數&事件&觸發器)使用-R -E(相當于①,省略了-d -t;觸發器預設導出)

⑤隻導出結構&函數&事件&觸發器使用 -R -E -d

PS:如果可以使用相關工具,比如官方的MySQL Workbench,則導入導出都是極為友善的,如下圖。(當然為了安全性,一般情況下都是屏蔽對外操作權限,是以需要使用指令的情況更多些)

11.使用infile/outfile導入/導出txt/csv資料檔案操作

①首先使用語句看一下可以導入/導出的路徑在哪裡

show variables like \'%secure%’;

表示導入/導出隻能存放在E:/下面。

②如果不按照對應路徑進行操作的話,将報如下錯誤:

Error Code: 1290. The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

③如果還有權限問題,請修改my.ini将secure_file_priv設定到有權限的路徑下

12.對csv/txt資料導入和導出

①導出csv資料

select *

into outfile \'E:/table1_data.csv\'

character set gb2312

fields terminated by \',\' optionally enclosed by \'"\' escaped by \'"\'

lines terminated by \'\r\n\'

from table1;

②導入csv資料

load data infile \'E:/table1_data.csv\'

into table table1 character set gb2312

fields terminated by \',\' optionally enclosed by \'"\' escaped by \'"\'

lines terminated by \'\r\n\';

③導出txt資料

預設使用空格作為分隔符,需要其它參數請參考上面的csv操作

select *

into outfile \'E:/table1_data.txt\'

from table1;

④導入txt資料

load data infile \'E:/table1_data.txt\'

into table table1;

posted on

2019-02-05 00:43 

yeyu1314 

閱讀(132) 

評論(0) 

編輯 

收藏 

舉報