去年9月,因為做備份的時候點成了還原,且還原了一個空白數據庫導致大半年的數據全沒了……研究了好久也沒能成功,后來在網上找了一個人幫忙弄了一下……數據無價,何況是我自己不會,我心甘情愿的付了200rmb……
今天,往服務器上新布局一個站點,因為站點名稱(數據庫名)跟之前的一個站很像,導致在恢復數據的時候,選錯了數據庫,又一次悲劇,研究了好久還是沒能成果,后來找了之前幫我的那個人……啥也沒說,我心甘情愿地又一次付了200rmb……
看到這里應該有很多罵聲。罵就罵吧,知識/數據無價,而我不會,有什么辦法,就是這么菜。我知道錢花的不冤,但我其實是不甘心的——我還上有老下有小,一個月就那么幾千塊死工資啊。找教程,死磕吧。
文章看不懂,看視頻,還是找到一個《mysql增量恢復手段》http://www.56.com/u24/v_MTUwNjAyMTU3.html。
他用的工具我不知道是啥(沒有系統學過,幾十年就這么一個人摸索著過來的,所以很菜很多都不懂),我只會cmd。
方法很簡單,就是導出日志,導入sql。語句大概是這樣:
mysqlbinlog mysql-bin.000000 > data.sql #導出 source data.sql #導入
因為有2次刪庫的經驗,這語句我熟悉的很啊,但是沒用,用不了。就不截圖了,直接說原因。
我用的是bt客戶端,沒看web面板是否這樣,它的mysql根本沒有mysqlbinlog這個命令。于是從官網下載了5.6(我用的版本),解憂后把bin的工具都拷貝了過來,我怕有問題,遇到已經有的命令直接跳過,只復制了那些不存在的。然后執行,還是報錯,問題樹字符什么的。改:
mysqlbinlog --no-defaults mysql-bin.000003 > c:/data.sql
這下好,我能看懂了,說找不到mysql-bin.000003。
mysqlbinlog --no-defaults c:\btsoft\websoft\mysql\mysql5.6\data\mysql-bin.000003 > c:/data.sql
這個是不是把所有數據庫都導出了?另外,我知道是什么時候誤操作的,網上有看到過按時間恢復的。試一下:
mysqlbinlog --no-defaults --stop-datetime="2020-06-23 08:14:00" c:\btsoft\websoft\mysql\mysql5.6\data\mysql-bin.000003 > c:/data.sql
又錯了,incorrect data and time argument:'2020-06-23。不知道怎么回事,好像有人說……總之我不知道,算了,按另外的方式來吧,好像還有個ste-position可以用。
mysqlbinlog --no-defaults --stop-position=282300230 c:\btsoft\websoft\mysql\mysql5.6\data\mysql-bin.000003 > c:/data.sql
這個stop-position我是全部導出后看到的,看視頻中有個vi可以查看,我卻找不到。只好用本辦法,還好我的數據庫不是特別大。遺憾的是我認為準確的stop-position并不準確,部分數據沒恢復。還因剛丟了200塊,心里很不爽(對自己而非幫忙的人),不測試了,下次再犯錯繼續找人弄。
© 致遠 2020-06-24,原創內容,轉載請注明出錯:cmd中恢復誤刪除的mysql