Mysql備份恢復相關

2021-06-26 01:07:28 字數 3400 閱讀 6499

load data [low_priority | concurrent] [local] infile 'file_name.txt'

[replace | ignore]

into table tbl_name

[fields

[terminated by 'string']

[[optionally] enclosed by 'char']

[escaped by 'char' ]

][lines

[starting by 'string']

[terminated by 'string']

][ignore number lines]

[(col_name_or_user_var,...)]

[set col_name = expr,...)]

[low_priority | concurrent]

-與同時執行優先順序相關,暫不考慮,insert語句也有類似選項[low_priority | delayed | high_priority]

[local]

-指定後從客戶端本地上傳檔案,可用絕對路徑和相對路徑,相對路徑被理解為相對於啟動客戶端時所在的目錄,一般為c:\users\administrator

-沒有指定時,在主機端尋找檔案,可用絕對路徑和相對路徑,當使用相對路徑時理解為資料庫資料夾所在目錄,但要區分'./file_name.txt'和'file_name.txt'區別

[replace | ignore]

-針對插入時出現重複唯一索引時起效,replace替換,ignore跳過

-insert語句中也有ignore選項,用於出現重複唯一索引或錯誤值,另[ on duplicate key update col_name=expr, ... ]子句用於更新原索引

[fields

[terminated by 'string']-兩個欄位間用什麼字元分隔/預設\t

[[optionally]-用於字元資料,數值資料不起效 enclosed by 'char']-乙個欄位用成對的字元分隔\預設空

[escaped by 'char' ]-轉義字元\預設反斜槓,用'\\'表示

][lines

[starting by 'string']-記錄行從什麼字元開始/預設空

[terminated by 'string']-記錄行間用什麼字元分隔/預設\n

][ignore number lines]

-指定number用於從開始跳過number行開始匯入

[(col_name_or_user_var,...)]

-用於指定匯入字段列表,可以使用變數然後被下面的子句匯入

[set col_name = expr,...)]

-指定單個字段值

1、windows檔案分隔行時應使用\r\n

2、當資料庫為utf8時,匯入的檔案型別也應該是utf8,但是某些utf8檔案會在檔案頭多出3個引導位元組,這造成用load data infile匯入時首記錄的首字段出現錯誤,使用character_set_database用於解釋匯入檔案的編碼方式,設定character_set_database=gbk匯入ascii檔案,即使資料庫是utf8編碼也可以正常匯入,這可以有效解決utf8檔案匯入問題

3、如果把終止符設定為'',在此情況下,文字檔案必須包含每行的所有字段。

4、如果lines terminated by是空字串,並且fields terminated by不是空字串,則各行以fields terminated by作為結尾。

-*****-

select col_name from table_name into outfile 'file_name'

select col_name into outfile from table_name

-兩種方式均可

-作為與load data infile配套使用,其fileds和lines選項必須完全匹配

-如果用into dumpfile代替into outfile,則只把一行寫入到檔案中,不對任何列或行進行終止,也不執行任何轉義處理

-file_name如果為相對路徑則被理解為相對於啟動客戶端時所在的目錄,一般為e:\wamp\bin\mysql\mysql5.5.20\data\所在資料庫名

將標準控制台輸出變成檔案輸出

-mysql -uroot -e "sql語句" > outfile;

-mysql -uroot < slqfile > outfile;

-上面2種方式均可,檔案路徑預設為啟動mysql路徑,一般為c:\users\administration\desktop\

-*****-

資料庫備份程式mysqldump

shell> mysqldump [options] db_name [tables] > file_name

-備份資料表,如果不指定表則備份全部資料表,備份語句中不包括資料庫的建立,那麼的恢復的時候必須首先建立並use資料庫

shell> mysqldump [options] --database db1 [db2 db3...] > file_name

shell> mysqldump [options] --all-database > file_name

-備份資料庫,如果不指表則備份全部資料表,備份語句中不包括資料庫的建立

2、file_name如果為相對路徑則被理解為啟動客戶端時所在的路徑,一般為c:\users\administrator

3、[options]可選專案較多,暫了解如下

-[--no-data]僅備份表結構

-[--add-drop-database]備份時加入刪除資料庫語句,防止同名資料庫存在時影響資料庫恢復

-[-add-drop-table]同上

4、[--add-drop-database] [-add-drop-table]有預設選項,在使用時最好用mysqldump -?檢視變數值,需要改變時[-add-drop-table=false]等號兩邊不能有空格

5、以上引數中短橫線-及其數量要精確匹配

聚石塔使用bat:

set yy=%date:~0,4%

set mm=%date:~5,2%

set dd=%date:~8,2%

set hh=%time:~0,2%

set mn=%time:~3,2%

if /i %hh% lss 10 (set hh=0%time:~1,1%)

d:cd wamp

cd bin

cd mysql

cd mysql5.5.20

cd bin

mysqldump -hlocalhost -uroot --add-drop-database --database a0109202126 > d:\wamp\sql\%yy%%mm%%dd%-%hh%.%mn%.sql

mysql 備份與恢復 MySQL 備份與恢復

1 檢視資料庫的資料儲存在哪個目錄下 shiyanlou mysql uroot e show variables like datadir variable name value datadir var lib mysql 2 備份資料的方法 select into outfile 檔名 或者 s...

mysql備份和恢復 mysql備份和恢復

目標 備份和恢復的3種方法,掌握mysqldump命令匯出資料,source命令匯入資料 備份必要性 重要資料不丟失 資料轉移 mysqldump客戶端 作用 轉儲資料庫 搜尋資料庫進行備份 將資料轉移到另乙個sql伺服器 不一定是mysql伺服器 mysqldump h 主機名 u使用者名稱 p ...

mysql 備份與恢復 Mysql 備份與恢復

資料檔案一致性處理 在完全備份的情況下,檔案不是時間點一致的,因為進行快照的時間點不一樣。如果嘗 試在未prepare資料的情況下還原資料庫,雖然操作上支援恢復,但是在啟動的時候仍會 進行資料recovery。執行帶 prepare 選項的 mariabackup 命令會使資料檔案進行統一,達到資料...