mysql 導出/導入


innodb:

備份整個數據庫:
mysqldump -u -p database > filename(backup.sql)

備份單個表:
mysqldump -u -p database table > filename(backup.sql)

備份多個表:

mysqldump -u -p database table1 table2 > filename(backup.sql)

選擇部分備份:
mysqldump -u -p database table --where "name='老王' or name='小李'" > filename(backup.sql)

恢復:

不登錄方式
mysql -u -p database < filename

登錄方式
mysql -u -p
use database;
source filename;

常用參數:
-t 導出數據不導出結構 默認都導出
-d 導出結構不導出數據
--databases 選擇多個數據庫
--all-databases 所有數據庫
--add-drop-table 這個選項將會在每一個表的前面加上DROP TABLE IF EXISTS語句,
保證導入MySQL數據庫的時候不會出錯,因為每次導入的時候,都會首先檢查表是否存在,存在就刪除

 

注:mysql的操作始終是要驗證用戶的,所以要登陸或者執行命令時附上賬號密碼,
賬號密碼緊跟,如-uroot -proot
密碼可以先不輸入,在回車后輸入,如 -uroot -p
> 導出
< 導入
這種方式備份出的是sql語句,導入時執行其中sql語句

冷備份:停止服務進行備份,即停止數據庫的寫入
熱備份:不停止服務進行備份(在線)

1.mysql的MyIsam引擎只支持冷備份,InnoDB支持熱備份,原因:

InnoDB引擎是事務性存儲引擎,每一條語句都會寫日志,並且每一條語句在日志里面都有時間點,那么在備份的時候,mysql可以根據這個日志來進行redo和undo,將備份的時候沒有提交的事務進行回滾,已經提交了的進行重做。但是MyIsam不行,MyIsam是沒有日志的,為了保證一致性,只能停機或者鎖表進行備份。

InnoDB不支持直接復制整個數據庫目錄和使用mysqlhotcopy工具進行物理備份:

直接復制整個數據庫目錄

因為MYSQL表保存為文件方式,所以可以直接復制MYSQL數據庫的存儲目錄以及文件進行備份。MYSQL的數據庫目錄位置不一定相同,在Windows平台下,MYSQL5.6存放數據庫的目錄通常默認為~\MySQL\MYSQL Server 5.6\data,或其他用戶自定義的目錄。這種方法對INNODB存儲引擎的表不適用。使用這種方法備份的數據最好還原到相同版本的服務器中,不同的版本可能不兼容。在恢復的時候,可以直接復制備份文件到MYSQL數據目錄下實現還原。通過這種方式還原時,必須保證備份數據的數據庫和待還原的數據庫服務器的主版本號相同。而且這種方式只對MYISAM引擎有效,對於InnoDB引擎的表不可用。執行還原以前關閉mysql服務,將備份的文件或目錄覆蓋mysql的data目錄,啟動mysql服務。

2.使用mysqlhotcopy工具快速備份

mysqlhotcopy是一個perl腳本,最初由Tim Bunce編寫並提供。他使用LOCK TABLES 、FLUSH TABLES和cp或scp來快速備份數據庫。他是備份數據庫或單個表的最快途徑,但他只能運行在數據庫目錄所在機器上,並且只能備份myisam類型的表。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM