[Mysql]——備份、還原、表的匯入匯出

Jelly_lyj發表於2017-03-18

 

備份

1. mysqldump

mysqldump備份生成的是個文字檔案,可以開啟了解檢視。

Methods-1 備份單個資料庫或其中的幾個表
# mysqldump -u username -p'password' dbname [table1,table2,...] >backup.sql
# mysqldump -u username -p'password' --single-transaction -R --triggers --master-data=1 -E dbname > backup.sql

匯出db1但不包含table1、table2
# mysqldump -u username -p'password' --ignore-table=db1.table1 --ignore-table=db1.table2 db1 >backup.sql

只匯出db1的table1和table2
# mysqldump -u username -p'password' --database db1 --tables table1 table2 >backup.sql

 

Methods-2 備份多個資料庫
# mysqldump  -u  username  -p'password'  --databases dbname1 dbname2 ... >backup.sql

 

Methods-3 備份所有資料庫
# mysqldump  -u  username  -p'password'  --all-databases >backup.sql

--single-transaction 該選項設定事務隔離模式為可重複讀,並在轉儲資料庫前傳送“ START TRANSACTION”語句。即保證該轉儲操作在一個事務內保證匯出資料的一致性。

--triggers 在輸出中包含每個轉儲表的觸發器

-R 在輸出中包含轉儲資料庫的儲存例程(過程和函式)

-E 在輸出中包含轉儲資料庫的事件排程器事件

-F 轉儲資料後生成新的binlog檔案

--no-data 只匯出表結構不匯出資料

--master-data=1

還原

# mysql  -u  username  -p'password'   [dbname]   <backup.sql   (dbname可以不寫)

 

將execel/csv匯入mysql(load data infile方法)

step-1:將.xls/.csv轉換為.txt

              .xls 另存為 —> .csv(csv逗號分隔) utf-8 另存為 —> .txt

step-2:要求在資料庫中新建對應的表,例如:

  > create table user( username char(255) not null, salt char(255), pwd char(255));

step-3:進入資料庫,匯入txt檔案

  # mysql -uroot -p123456 --local-infile

  > load data local infile '/root/user.txt' into table user fields terminated by ',' lines terminated by '\n' ignore 1 lines;

表的匯入匯出

1. mysql命令

Methods-1 匯出為文字檔案
# mysql -u username  -p'password'        -e 'select * from table' dbname >data.txt

 

Methods-2 匯出為xml檔案
# mysql -u username  -p'password'   -X   -e 'select * from table' dbname >data.xml

 

Methods-3 匯出為html檔案
# mysql -u username  -p'password'   -H   -e 'select * from table' dbname >data.html

 

參考

《mysqldump匯出詳解》

《mysql5.7參考手冊-mysqldump-資料庫備份程式》

《mysqldump流程》

相關文章