【windows】環境下mysql的資料備份以及恢複

來源:互聯網
上載者:User

標籤:告訴   誤刪除   --   誤刪   hang   存在   分享   alt   方便   

   【windows】環境下mysql的資料備份以及恢複

  無論是剛剛入行的‘猿友’還是入行很久的‘老猿’,我相信都會遇到過因為各種原因(很多情況下是自己誤刪了資料庫)的操作.drop databases xxxxx

  而誤刪了線上項目的資料庫是一件很恐怖的事情,那麼如果大家遇到這種情況怎麼辦呢?首先不要著急(我感覺說了也白說-,-),先看一看自己的mysql是否開啟了binlog日誌功能,如果沒有???game over !!!

  關於查看binlog日誌有沒有開啟,請到自己的Mysql檔案下找my.ini中的[mysqld],裡面是否有log-bin=mysql-bin,有則表示開啟了(沒有開啟的趕緊開啟,不然都沒後悔藥吃!!!)

  為了方便新手閱讀,在此我從資料備份開始講。

  【資料備份】

  •   首先我們先建一個測試用的資料庫drop_test
  •   並在drop_test中建立一張test表,表內容隨意(反正是測試用的)
  •        資料內容如下

  

  

  在確保了binlog開啟了之後,在mysql檔案夾中的bin檔案夾中有一個mysqldump.exe,這個就是常用的Database Backup工具之一,我們執行此程式,備份我們的drop_test資料庫

  執行語句:mysqldump -uroot -p -B -F -R -x --master-data=2  drop_test  >  d:\backups\drop_test_bac.sql;這是完全備份,用於備份此語句執行時(到這時刻為止)的資料庫資料

  

  輸入密碼後,即可在D:\backups目錄下看到檔案drop_test_bac.sql

  

  我們可以開啟看看,發現裡面存了資料庫drop_test的表資訊以及表內容

  假如我們在備份之後,又操作了資料庫(往drop_test資料庫中增加了內容)

  

  而這個時候,我們誤刪除了資料庫drop_test(悲劇的執行了drop  database  drop_test),導致資料庫drop_test沒了!!!

   

  這個時候不要慌,首先我們先從備份的資料庫檔案中還原資料

  執行語句:mysql -uroot -p > d:\backups\drop_test_bac.sql

  

  執行結束後我們將發現drop_test資料庫又回來了,並且裡面的表還在,資料.....嗯?怎麼只恢複了一部分資料?還有一部分呢?????

 

   我們在做備份資料庫之後,又新增了一些資料,假如在新增之後我們刪除了資料庫,那麼新增的那部分怎麼辦?不要急,首先我們開啟drop_test_bac.sql,找到類似-- CHANGE MASTER TO MASTER_LOG_FILE=‘mysql-bin.000009‘, MASTER_LOG_POS=107;這句話,這句話告訴我們,將那些新增的資料儲存在了mysql-bin.000009的第107節點裡,接下來我們就要考慮從這裡恢複我們的資料。

  這個mysql-bin.000009在我們的mysql檔案夾中的data檔案夾裡(我的是phpstudy環境,預設在這裡),我們先拷貝到d:\backups檔案夾裡

  

  通過mysqlbinlog命令將mysql-bin.000009二進位檔案轉成sql檔案(剛開始我的mysql的bin檔案夾裡沒有mysqlbinlog工具,我是到網上下了一個,如果沒有的同學可以問我要,也可以自己網上找)

  執行語句:mysqlbinlog -d drop_test d:\backups\mysql-bin.000009 > d:\backups\009bac_bin.sql

  

  執行結束後我們在d:\backups檔案夾裡會產生009bac_bin.sql檔案

  

  將此檔案裡的drop操作刪除(不然恢複了又直接刪除了-,-)

  接下來就是恢複此檔案資料了

  執行語句:mysql -uroot -p > d:\backups\009bac_bin.sql

  資料恢複完成!!!

  

PS:第一次發微博,有些地方寫得不好的地方歡迎大家指出!!!

【windows】環境下mysql的資料備份以及恢複

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.