MySQL資料庫備份與還原
- 介紹
-
- 邏輯備份
- 邏輯還原
-
- 其他情況說明
- 實體備份
- 實體還原
介紹
MySQL是我們開發最為常用的資料庫之一,下面簡單介紹一下MySQL資料庫的備份與還原。
邏輯備份
注意:這種方式适用于比較少量資料的時候,如果大量資料,請實體備份,備份檔案盡量含有日期[友善資料的還原與管理],對于客戶的資料庫是禁止删除的,是以還原的時候,可以還原到新的資料庫。
Windows平台下CMD執行:參數說明
-h 10.0.42.180
[host資料庫伺服器IP],-P 3306[PORT資料庫端口,mysql預設3306] gbk[資料庫字元集,目前test預設字元集],test[資料庫名稱],D:\test_backup20181123.dump[備份路徑以及檔案名] ,如果是本機-h 10.0.42.180 -P 3306 部分可以省略
1.cmd執行
D:\> mysqldump -uroot -p -h 10.0.42.180 -P 3306 -c --default-character-set=gbk test > D:\\test_backup20181123.dump
輸入密碼後回車

在對應路徑下就能看到相應檔案了【如果2002請看後面的其他情況說明】
邏輯還原
1.建立資料庫,指定字元集
mysql> CREATE DATABASE test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
2.導入表及資料
cmd下執行下面語句,輸入密碼後回車
D:\> mysql -uroot -p -h 10.0.42.180 -P 3306 -c --default-character-set=gbk test < D:\\test_backup20181123.dump
其他情況說明
資料庫還原的時候,如果提示外鍵限制,修改dump檔案,開頭添加,不啟用外鍵
SET FOREIGN_KEY_CHECKS=0;
最後添加
SET FOREIGN_KEY_CHECKS=1;
Linux平台下與windows下面基本一緻
如果Linux下提示下面錯誤
mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
套接字錯誤,選擇正确的套接字
[[email protected] gugu]# netstat -ln | grep mysql
unix 2 [ ACC ] STREAM LISTENING 17512781 /var/lib/mysql/mysql.sock
導出指令中添加socket參數
[[email protected] gugu]# mysqldump -uroot -p --socket=/var/lib/mysql/mysql.sock -c --default-character-set=gbk test > ./test_backup20181123.dump
實體備份
顧名思義,找到實體存儲檔案進行備份
1.實體備份[InnoDB存儲引擎(mysql5.5.5以上版本預設存儲引擎)],test[資料庫名稱],
MySQL資料目錄下複制test檔案夾以及ibdata1檔案
如果找不到檔案位置
mysql> show global variables like "%datadir%";
就可以找到實體檔案位置,以及下面的資料檔案
實體還原
-
停止伺服器
2.将test檔案夾以及ibdata1檔案夾替換原來資料庫資料檔案
3.重新啟動資料庫
注意:這種情況會所有資料庫都會還原成備份的版本