一,mysqldump備份方法
貌似是除了在MySQL用戶端裡匯出表之外,最簡單的備份方法。記錄一下。
shell> mysqldump [OPTIONS] database [tables]
如果沒有指定資料表,則匯出整個資料庫的內容。
獲得協助
shell> mysqldump --help
這樣能夠得到mysqldump的選項列表。
注意:如果運行mysqldump沒有–quick或–opt選項,mysqldump將在匯出結果前裝載整個結果集到記憶體中,如果正在匯出一個大的資料庫,這將可能是一個問題。
1.匯出整個資料庫
mysqldump -u 使用者名稱 -p 資料庫名 > 匯出的檔案名稱
mysqldump -u user -p database > back.sql
2.匯出一個表
mysqldump -u 使用者名稱 -p 資料庫名 表名> 匯出的檔案名稱
mysqldump -u user -p database.table> back.sql
mysqldump -u user –password=密碼 database.table > back.sql
3.匯出一個資料庫結構
mysqldump -u user -p -d –add-drop-table database >d:back.sql
-d 沒有資料 –add-drop-table 在每個create語句之前增加一個drop table
4.匯入資料庫
常用source 命令
進入mysql資料庫控制台,
如mysql -u root -p
mysql>use 資料庫
然後使用source命令,後面參數為指令檔(如這裡用到的.sql)
mysql>source d:back.sql
5.還是匯入資料庫
mysql -u user -p target_db_name < backup-file.sql
二,複製copy資料備份捷徑
因為這個方法沒有得到官方正式文檔的驗證,我們暫稱為實驗吧。
目的:備份hostA主機中一個mysql資料庫TestA,並恢複到到hostB機中
實驗環境:
作業系統:WinNT4.0,Mysql3.22.34,phpMyAdmin 2.1.0
在hostA中安裝mysql資料庫並建立TestA資料庫
hostB機安裝mysql資料庫,沒有TestA資料庫
方法步驟:
啟動phpMyAdmin察看HostA和HostB中的資料庫列表,在HostB中沒有TestA資料庫
找到HostA中mysql的安裝目錄,並找到資料庫目錄data
在我的實驗環境中,這個目錄是
C:mysqldata
找到對應資料庫名稱的子目錄
C:mysqldataTestA
粘貼拷貝到HostB的Data目錄下,是HostA同HostB Mysql資料目錄下的檔案相同
重新整理HostB的phpMyAdmin察看一下資料庫列表,我們看到TestA已經出現,並且作查詢修改等操作都正常,備份恢複恢複成功
實驗結論:Mysql的資料庫可以通過檔案形式儲存,備份,恢複只要將相應檔案目錄恢複即可,無需使用其它工具備份。