程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql恢復數據功能一些筆記

mysql恢復數據功能一些筆記

編輯:MySQL綜合教程

mysql恢復數據功能一些筆記   很多童鞋在備份還原數據庫的時候都用過mysqldump,source功能,但是本人感覺操作相當不方便,看不到所有對數據庫的操作,備份不及時。說不定某個程序員來一個del,某個備份時間定後面的數據想找也找不回來了,查了一下資料利用mysql日志可以很好解決前面問題,優點:是想恢復到某個時間點,或某個操作sql語句,缺點:就產生龐大的日志文件.下面是我在自己window服務下操作過程: 1.開啟mysql日志 在my.ini 文件裡找到[mysqld],在其下面增加一行log-bin  

Ruby 
[mysqld]  
# The TCP/IP Port the MySQL Server will listen on  
port=3306  
log-bin  

 

默認日志文件名字是以主機命名名字,如果想改為自己定義的名字  
Python 
[mysqld]  
# The TCP/IP Port the MySQL Server will listen on  
port=3306  
#mysql-bin為自定義名字  
log-bin = mysql-bin  

 

2.定義日志文件路徑  
Ruby 
#Path to the database root存放日志的路徑  
datadir="D:/web/mysql/Data/"  

 

3.重啟mysql 在上面的路徑下會產生兩個文件     4.用命令進入mysql
mysql> show binlog events ;

 

你會看到類似這樣的界面:     上面pos就是開始位置end_log_pos的結束位置 相關命令:
1.查看當前日志開啟情況
mysql>show variables like 'log%';
2.查看當前日志情況
mysql>show master status;
3.顯示當前二進制
mysql>show binary logs;

 

5.恢復有兩種:
1.是把日志文件保存成sql文件,再用source命令
定位保存用法:在mysql安裝bin的目下:mysqlbinlog --start-position=4 --stop-position=239 d:\web\mysql\data\ mysqlbin-log.000001 >test1.txt
定時間保存用法:在mysql安裝bin的目下mysqlbinlog --start-datetime="2013-03-16 13:00:00" --stop-datetime="201
3-03-16 14:00:00" d:\web\mysql\data\ mysqlbin-log.000001 >test1.txt
再source test1.txt
2.直接把日志恢復到某個點上
定時間還原法:在mysql安裝bin的目下mysqlbinlog --start-datetime="2013-03-16 13:00:00" --stop-datetime="201
3-03-16 14:00:00" d:\web\mysql\data\ mysqlbin-log.000001 | mysql -uroot -p
定位還原法:在mysql安裝bin的目下 D:\web\mysql\bin>mysqlbinlog --start-position=3696 --stop-position=4241 d:\web\
ysql\data\mysql-bin.000001 | mysql -hlocalhost -uroot -p

 

PS:如果在創建表和操作表的過程有錯誤,在還原的時候也是會有錯誤的,那得部分定位來還原。(下面是我操作過程中一個小報錯,Duplicate entry '1' for key 1 去掉auto_increment,或者不要給有auto_increment的字段賦值便可解決),有興趣的朋友可以簡單創建一個表,增加數據,然後刪除數據,利用上面步驟看看哈^V^  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved