萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysqldump數據庫備份與還原方法

mysqldump數據庫備份與還原方法

mysqldump是一款mysql自帶的數據庫備份還原工具,我想很多朋友都沒用吧或一直是用phpmyadmin來操作或是直接在服務器上對數據庫進行打包吧,下面我們來看看mysqldump的用法吧。

mysql備份:

 代碼如下 復制代碼 mysqldump   -uroot -proot  bookmark > bm.bak
mysqldump   -u用戶名 -p密碼  數據庫名> 導出的文件的絕對路徑

如果運行mysqldump沒有–quick或–opt選項,mysqldump在轉儲結果前將整個結果集裝入內存。如果轉儲大數據庫可能會出現問題。該選項默認啟用,但可以用–skip-opt禁用。

使用–skip-opt 將每條數據分開導出,不會一次insert 後面values一大串

 代碼如下 復制代碼

mysqldump   -uroot -proot  –skip-opt bookmark > bm.bak

mysql  數據還原

 代碼如下 復制代碼

mysql -u root -proot tt <C:UsersyyjDesktopbm.bak
mysql  -u用戶名 -p密碼  數據庫名  < 出的備份文件的絕對路徑

如果出現ERROR 1214 (HY000) at line 56475: The used table type doesn’t support FULLTEXT indexes

則說明你的原來的表中可能使用全文索引,而現在的引擎不支持

修改mysql配置文件

 代碼如下 復制代碼

#默認為INNODB
default-storage-engine=MyISAM

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 "

  如前面所講的,您可以使用這一選項來過篩選將要放到 導出文件的數據。

copyright © 萬盛學電腦網 all rights reserved