mysqldump工具蠻常來使用備份資料庫,會將所要dump的Database備份成一個SQL Script檔案,如果要還原的話,只要在MySQL執行SQL Script即可。
一、mysqldump指令語法
mysqldump [options] [db_name [tbl_name ...]]
二、 mysqldump選項
- –all-databases, -A 輸出所有資料庫
- –databases, -B 輸出的資料庫名稱
- –user=user_name, -u user_name 資料庫使用者名稱
- –password[=password], -p[password] 資料庫使用者密碼
- –complete-insert, -c 使用完整的INSERT指令,也就是包含欄位名稱
- –no-create-db, -n 不輸出CREATE DATABASE指令
- –no-create-info, -t 不輸出CREATE TABLE指令
- –opt 是mysqldump中的預設參數,參數功能相等於加入了 –add-drop-table –add-locks –create-options –disable-keys –extended-insert –-lock-tables –quick –set-charset等參數
- –hex-blob 將binary的欄位(含BINARY, VARBINARY, BLOB等資料型態)轉換為16進位,如果有binary欄位要加入這個選項
在mysqldump的文件中有介紹到常用的指令方式
shell> mysqldump [options] db_name [tbl_name …]
shell> mysqldump [options] –databases db_name …
shell> mysqldump [options] –all-databases
三、mysqldump輸出範例
輸出blog資料庫的所有table
% mysqldump -u "myblog" -p"myBlogPassword" blog > blog_backup20130123.sql
有我們只要備份資料庫中的資料,因為資料庫的schema都建立好了,就可以加入不建立database及table的參數,也不需要輸出trigger
% mysqldump -u "myblog" -p"myBlogPassword" -c -n -t --skip-triggers blog > blog_backup20130123.sql
四、將SQL Script匯入資料庫
除了可以利用phpMyAdmin進行上傳.sql檔案之外,也可以利用重導I/O來用
% mysqldump -u myblog -p"myBlogPassword" blog < blog20130123.sql
會筆記mysqldump是因為在使用資料庫的時候有建立binary的欄位,輸出成SQL Script進行備份,但是在測試復原的時候,卻在INSERT binary欄位的時候發生錯誤,只要加上 –hex-blob的選項,就會將binary欄位輸出為16進位,這樣就不會有問題了。
發佈留言