備份資料庫
1.使用mysqldump命令備份
- 備份一個資料庫:mysqldump -u 使用者名稱 -p密碼 資料庫名 [表名1,表名2...]>備份檔案路徑及名字.sql
如果沒有表名,則備份整個資料庫
eg: mysql -u root -p test studentinfo >D:\test.sql
- 備份多個資料庫:mysqldump -u 使用者名稱 -p --databases 資料庫1,資料庫2... > 備份檔案路徑及名字.sql
- 備份所有資料庫:mysqldump -u 使用者名稱 -p --all -databases > 備份檔案路徑及名字.sql
注:備份時候不一定是.sql副檔名,可以任意指定
2.直接複製整個資料庫目錄
- 將mysql資料庫檔案直接複製出來,最好將服務先停止,保證資料一致
- 對INNODB儲存引擎的表不適用
- 還原時最好是相同版本的MySQL資料庫
3.使用mysqlhotcopy工具快速備份
- 如備份時不能停止mysql服務,可使用此工具。比mysqldump命令快
- 此工具是一個Perl指令碼,主要在Linux下使用
- 使用LOCK TABLES、FLUSH TABLES和cp來進行快速備份
- 原理:先將備份的資料庫加上一個讀操作鎖,用FLUSH TABLES將記憶體中的資料寫回到硬碟資料庫中,最後將備份的資料庫檔案複製到目標目錄
還原資料庫
1.使用mysql命令還原
- mysql -u root -p[資料庫名] < backup.sql
2.直接複製到資料庫目錄
- 和前面複製目錄備份一樣,將目錄複製到對應的資料夾下
- windows下目錄:C:/mysql/data C:/Document and Settings/All Users/Application Data/MySQL/MySQL Server5.1/data等預設路徑
- Linux下:/var/lib/mysql/ /usr/local/mysql/data usr/local/mysql/var 等預設目錄
- 使用mysqlhotcopy備份的資料庫也是通過這種方式還原,複製到資料庫目錄後,要將資料庫的使用者和組變成mysql: chwon -R mysql.mysql dataDir
資料庫遷移
1.資料庫遷移分類:
- MySQL相同版本的資料庫之間遷移
- 遷移到MySQL其他版本的資料庫中
- 遷移到其他型別的資料庫中
MySQL相同版本之間遷移:
mysqldump -h 主機名 -u root -password=password1 -all-databases |
mysql -h host2 -u root -password=password2
用SELECT...INTO OUTFILE匯出文字檔案
- SELECT [列名] FROM 表名 [WHERE條件] INTO OUTFILE '目標檔案路徑'[OPTION];
用mysqldump匯出文字檔案
- mysqldump -u root -pPassword -T 目錄 dbname table [OPTION];
用mysql命令匯出文字檔案
- mysql -u root -pPassword -e "SELECT語句" dbname > D:/backup.txt
- 匯出xml檔案:
-
- mysql -u root -pPassword -xml -X -e "SELECT語句" dbname > D:/backup.xml
- 匯出html檔案:
-
- mysql -u root -pPassword --html -H -e "SELECT語句" dbname > D:/backup.html