1、首先構建測試環境數據create table t1(a varchar(10),b varchar(10));insert into t1 values('1','1');insert into t1 values('2','2');commit;。
為伊美等地區用戶提供了全套網頁設計制作服務,及伊美網站建設行業解決方案。主營業務為網站設計制作、網站設計、伊美網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業、用心的態度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
2、模擬誤修改,將t1表中的b字段更新為錯誤數據 "123456"update t1 set b='123456' where a='1';commit;select * from t1;。
3、將恢復工具上傳到服務器并進行解壓。unzip binlog2sql-master.zip。
4、得到誤修改時的binlog文件(show binary logs;),實驗環境是mysql-bin.000011。
5、通過?binlog2sql.py 腳本的到所有 對表 t1 的修改操作。python binlog2sql.py -hlocalhost -P23307 -ubinlog2sql -p'binlog2sql' -dtest -tt1 --start-file='mysql-bin.000011'。
6、得到了誤刪除的sql的準確位置在1382-1615之間,使用 _**-B**_ 選項生成回滾sql。python binlog2sql.py -hlocalhost -P23307 -ubinlog2sql -p'binlog2sql' -dtest -tt1 --start-file='mysql-bin.000011' --start-position=1382 --stop-position=1615 -B。
7、執行得到的回滾語句進行誤操作恢復。就完成了。
mysql數據庫不小心還原了需要按照以下步驟恢復。
1、先確認mysql有沒有啟用bin日志 ,就是看下mysql.ini(my.cnf)里的log-bin=mysql-bin, 可以 自定義一個目錄和前綴名,比如/data/log/mylog這樣。
2、然后在數據庫文件存放的data目錄就能看到mysql-bin.00000x這樣的文件,這就是二進制日志了,可以導出成txt格式的,里面其實就是對數據庫的各種操作sql語句。
3、導出txt文件:
e:\wamp\bin\mysql\mysql5.6.12\binmysqlbinlog
--database=testdatabase
e:\wamp\bin\mysql\mysql5.6.12\data\mysql-bin.000312
c:\\test1.txt
這是windows下的導出,linux也是類似的。
database=數據庫名
從最早的日志還始還原
linux下可以很方便的 mysql-bin.000*
可以加參數開始時間和結束時間,就是你執行那條sql語句的時間
start-datetime="2014-12-04
11:25:56"
--stop-datetime="2014-12-04
13:23:50"
4、恢復數據:
e:\wamp\bin\mysql\mysql5.6.12\binmysqlbinlog
--database=yundongchao
e:\wamp\bin\mysql\mysql5.6.12\data\mysql-bin.000179
|
mysql
-u
root
-p
------------------------------------------------
1.第一步,查詢語句:select*fromtable_name;或select*fromtable_namewhere條件,如下圖。
2.第二步,增加語句或插入數據insertintotable_name(clus...)values(values...)實例如圖
3.修改數據:updatetablenamesetxx=xx,xxx=xxwherexxx=xxxandxxx=xxx,如下圖。
4.第四步,刪除語句deletetable_namewhere條件實例如圖。
1 找個別的機器安裝個同版本的mysql或從已安裝同版本的其他機器上(非同版本的也可以試下):
拷貝 mysql/data/mysql 目錄到你的mysql/data/ 下吧
2 試著啟動mysql服務,如果能啟動了,理論上應該丟失的只有用戶、授權等一些系統信息,不影響你的使用的數據;
如果不能啟動,看錯誤日志,爭取啟動了。
3 趕緊把數據備份一份出來,重新把所有庫(只是你后來創建的業務相關的庫,不包括mysql庫)都刪了,重新導入一遍。理論上不這樣也可以,但只是非生產重要的環境下。
4 重新做用戶授權。
數據庫誤刪某表恢復方法,這個前提是針對每天有備份的數據庫 ,如果沒有備份 恢復起來會非常非常麻煩,所以奉勸大家還是要備份!備份!備份!
/*首先查看一下數據表中的數據*/MariaDB [drop_test] select * from python_test;+----+-----------+------------+| id | name ? ? ?| class_time |+----+-----------+------------+| ?1 | 字典 ? ? ?| ? ? ? ? ?3 || ?2 | 列表 ? ? ?| ? ? ? ? ?2 || ?3 | 函數 ? ? ?| ? ? ? ? ?5 || ?4 | 裝飾器 ? ?| ? ? ? ? ?2 || ?5 | 迭代器 ? ?| ? ? ? ? ?2 |+----+-----------+------------+5 rows in set (0.00 sec)
/*備份*/mysqldump -uroot -p111111 -B drop_test drop_test.sql
/*再插入數據后刪除數據庫*/MariaDB [drop_test] INSERT INTO python_test(id,name,class_time) value(6,'生成器',2);
Query OK, 1 row affected (0.01 sec)
MariaDB [drop_test] INSERT INTO python_test(id,name,class_time) value(7,'類的方法',5);
Query OK, 1 row affected (0.00 sec)
刪除數據庫
MariaDB [drop_test] drop database drop_test ;
Query OK, 1 row affected (0.01 sec)
切記這個時候不要有任何的操作!!!
/*這個時候要將當前的binlog日志拷貝到其他目錄,以免后續操作對binlog日志產生影響*/cp /var/lib/mysql/mysql-bin.000006 /home
/*執行命令*/mysqlbinlog -d drop_test mysql-bin.000006 006bin.sql
編輯006bin.sql將里面的drop全部刪除
最后則是開始恢復數據
/*首先恢復備份文件*/mysql -uroot -p111111 drop_test drop_test.sql
/*查看數據庫備份文件*/MariaDB [(none)] show databases;+--------------------+| Database ? ? ? ? ? |+--------------------+| information_schema || drop_test ? ? ? ? ?|| for_bak ? ? ? ? ? ?|| lhc ? ? ? ? ? ? ? ?|| mysql ? ? ? ? ? ? ?|| performance_schema || test ? ? ? ? ? ? ? |+--------------------+7 rows in set (0.00 sec)/*備份的數據已經恢復了*/MariaDB [drop_test] show tables;+---------------------+| Tables_in_drop_test |+---------------------+| python_test ? ? ? ? |+---------------------+1 row in set (0.00 sec)
MariaDB [drop_test] select * from python_test;+----+-----------+------------+| id | name ? ? ?| class_time |+----+-----------+------------+| ?1 | 字典 ? ? ?| ? ? ? ? ?3 || ?2 | 列表 ? ? ?| ? ? ? ? ?2 || ?3 | 函數 ? ? ?| ? ? ? ? ?5 || ?4 | 裝飾器 ? ?| ? ? ? ? ?2 || ?5 | 迭代器 ? ?| ? ? ? ? ?2 |+----+-----------+------------+5 rows in set (0.00 sec)
接下來恢復備份之后被刪除的數據
mysql -uroot -p111111 drop_test 006bin.sql
/*恢復后查看數據*/MariaDB [drop_test] select * from python_test;+----+--------------+------------+| id | name ? ? ? ? | class_time |+----+--------------+------------+| ?1 | 字典 ? ? ? ? | ? ? ? ? ?3 || ?2 | 列表 ? ? ? ? | ? ? ? ? ?2 || ?3 | 函數 ? ? ? ? | ? ? ? ? ?5 || ?4 | 裝飾器 ? ? ? | ? ? ? ? ?2 || ?5 | 迭代器 ? ? ? | ? ? ? ? ?2 || ?6 | 生成器 ? ? ? | ? ? ? ? ?2 || ?7 | 類的方法 ? ? | ? ? ? ? ?5 |+----+--------------+------------+7 rows in set (0.00 sec)
1 找個別的機器安裝個同版本的mysql或從已安裝同版本的其他機器上(非同版本的也可以試下):
拷貝 mysql/data/mysql 目錄到你的mysql/data/ 下吧
2 試著啟動mysql服務,如果能啟動了,理論上應該丟失的只有用戶、授權等一些系統信息,不影響你的使用的數據;
如果不能啟動,看錯誤日志,爭取啟動了。
3 趕緊把數據備份一份出來,重新把所有庫(只是你后來創建的業務相關的庫,不包括mysql庫)都刪了,重新導入一遍。理論上不這樣也可以,但只是非生產重要的環境下。
4 重新做用戶授權。
網站欄目:誤刪除mysql怎么恢復 mysql 誤刪恢復
鏈接URL:http://m.newbst.com/article18/higddp.html
成都網站建設公司_創新互聯,為您提供網站內鏈、網站維護、、品牌網站建設、電子商務、手機網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯