天天看點

MySQL資料庫備份與還原介紹

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
           

輸入密碼後回車

MySQL資料庫備份與還原介紹

在對應路徑下就能看到相應檔案了【如果2002請看後面的其他情況說明】

MySQL資料庫備份與還原介紹

邏輯還原

1.建立資料庫,指定字元集

mysql>  CREATE DATABASE test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
           
MySQL資料庫備份與還原介紹

2.導入表及資料

cmd下執行下面語句,輸入密碼後回車

D:\> mysql -uroot -p -h 10.0.42.180 -P 3306 -c --default-character-set=gbk test < D:\\test_backup20181123.dump
           
MySQL資料庫備份與還原介紹

其他情況說明

資料庫還原的時候,如果提示外鍵限制,修改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%";
           
MySQL資料庫備份與還原介紹

就可以找到實體檔案位置,以及下面的資料檔案

MySQL資料庫備份與還原介紹

實體還原

  1. 停止伺服器

    2.将test檔案夾以及ibdata1檔案夾替換原來資料庫資料檔案

    3.重新啟動資料庫

    注意:這種情況會所有資料庫都會還原成備份的版本

繼續閱讀