萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysqldump數據備份與還原詳細介紹

mysqldump數據備份與還原詳細介紹

我們來詳細的介紹一下關於在mysql中的mysqldump命令的用法,我們現在常用的phpmyadmin對數據的備份還原都是調用了mysqldump這個命令哦。

我們先來了解一下這個mysqldump的用法

mysqldump工具有大量的選項,部分選項如下表:

  選項/Option 作用/Action Performed

  --add-drop-table

  這個選項將會在每一個表的前面加上DROP TABLE IF EXISTS語句,這樣可以保證導回MySQL數據庫的時候不會出錯,因為每次導回的時候,都會首先檢查表是否存在,存在就刪除

  --add-locks

  這個選項會在INSERT語句中捆上一個LOCK TABLE和UNLOCK TABLE語句。這就防止在這些記錄被再次導入數據庫時其他用戶對表進行的操作
  
  -c or - complete_insert

  這個選項使得mysqldump命令給每一個產生INSERT語句加上列(field)的名字。當把數據導出導另外一個數據庫時這個選項很有用。

  --delayed-insert 在INSERT命令中加入DELAY選項

  -F or -flush-logs 使用這個選項,在執行導出之前將會刷新MySQL服務器的log.

  -f or -force 使用這個選項,即使有錯誤發生,仍然繼續導出

  --full 這個選項把附加信息也加到CREATE TABLE的語句中

  -l or -lock-tables 使用這個選項,導出表的時候服務器將會給表加鎖。

  -t or -no-create- info

  這個選項使的mysqldump命令不創建CREATE TABLE語句,這個選項在您只需要數據而不需要DDL(數據庫定義語句)時很方便。
  
  -d or -no-data 這個選項使的mysqldump命令不創建INSERT語句。


在您只需要DDL語句時,可以使用這個選項。

  --opt 此選項將打開所有會提高文件導出速度和創造一個可以更快導入的文件的選項。

  -q or -quick 這個選項使得MySQL不會把整個導出的內容讀入內存再執行導出,而是在讀到的時候就寫入導文件中。

  -T path or -tab = path 這個選項將會創建兩個文件,一個文件包含DDL語句或者表創建語句,另一個文件包含數據。DDL文件被命名為table_name.sql,數據文件被命名為table_name.txt.路徑名是存放這兩個文件的目錄。目錄必須已經存在,並且命令的使用者有對文件的特權。
  
  -w "WHERE Clause" or -where = "Where clause "

  如前面所講的,您可以使用這一選項來過篩選將要放到 導出文件的數據。
  
  假定您需要為一個表單中要用到的帳號建立一個文件,經理要看今年(2004年)所有的訂單(Orders),它們並不對DDL感興趣,並且需要文件有逗號分隔,因為這樣就很容易導入到Excel中。 為了完成這個人物,您可以使用下面的句子:

  bin/mysqldump –p –where "Order_Date >='2000-01-01'"
  –tab = /home/mark –no-create-info –fields-terminated-by=, Meet_A_Geek Orders

  這將會得到您想要的結果。
  
  schema:模式

  The set of statements, expressed in data definition language, that completely describe the structure of a data base.

  一組以數據定義語言來表達的語句集,該語句集完整地描述了數據庫的結構。
  
  SELECT INTO OUTFILE :

  如果您覺得mysqldump工具不夠酷,就使用SELECT INTO OUTFILE吧, MySQL同樣提供一個跟LOAD DATA INFILE命令有相反作用的命令,這就是SELECT INTO OUTFILE 命令,這兩個命令有很多的相似之處。首先,它們有所有的選項幾乎相同。現在您需要完成前面用mysqldump完成的功能

好了下面詳細的來介紹一下關於mysqldump數據備份與還原吧
備份MySQL數據庫的命令

 代碼如下 復制代碼 mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql

備份MySQL數據庫為帶刪除表的格式
備份MySQL數據庫為帶刪除表的格式,能夠讓該備份覆蓋已有數據庫而不需要手動刪除原有數據庫。

 代碼如下 復制代碼 mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql

直接將MySQL數據庫壓縮備份

 代碼如下 復制代碼 mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz

備份MySQL數據庫某個(些)表

 代碼如下 復制代碼 mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql

同時備份多個MySQL數據庫

 代碼如下 復制代碼 mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql

僅僅備份數據庫結構

 代碼如下 復制代碼 mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql

備份服務器上所有數據庫

 代碼如下 復制代碼 mysqldump –all-databases > allbackupfile.sql

還原MySQL數據庫的命令

 代碼如下 復制代碼 mysql -hhostname -uusername -ppassword databasename < backupfile.sql

還原壓縮的MySQL數據庫

 代碼如下 復制代碼 gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename

將數據庫轉移到新服務器

 代碼如下 復制代碼 mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename

你可能感覺的文件

http://www.111cn.net/database/mysql/40556.htm

copyright © 萬盛學電腦網 all rights reserved